设为首页
收藏本站
开启辅助访问
切换到宽版
登录
立即注册
只需一步,快速开始
首页
Portal
论坛
BBS
新鲜出炉
免费列表
联系我们
搜索
搜索
安全
安全
传奇版本
精品软件
传奇工具
水漫金山
传奇教程
福利经验
传奇技术
素材补丁
引擎帮助
网站程序
动画发布
开区工具
站点公告
传奇故事
站点版规
关于报毒
在线工具
违规处里
站点帮助
站务处理
本版
帖子
用户
传奇GM论坛
»
论坛
›
综合交流
›
网络攻防
›
AntiXSS-支持Html同时防止XSS攻击
返回列表
发新帖
AntiXSS-支持Html同时防止XSS攻击
[复制链接]
524
|
0
|
2012-4-1 16:17:32
|
显示全部楼层
|
阅读模式
跨站脚本攻击(XSS)已经不是什么新鲜的话题了,甚至很多大公司也为此吃尽苦头。最简单直接的防范方法,就是不允许任何html标签输入,对用户输入进行编码(htmlencode)。
但是如果想用户输入支持一些格式,怎么办?一种办法就是很多论坛采用的BBCode的方法。使用特定的标签代替一些格式。比如:[B]表示粗体,等等。但是,BBCode这种形式并不被广泛接受,它的表现力实在太差了,而且并不是标准格式。
为了让用户的输入更具表现力,涌现了大量的Html编辑器控件,著名的有FCKEditor,FreeTextBox,RichTextBox,CuteEditor,TinyMCE等等。比如,博客园的后台发随笔就支持CuteEditor和TinyMCE,我个人比较喜欢CuteEditor,功能强大,性能不错,而且容易定制。
使用这些Html编辑器控件的潜在危险,是用户可能会输入一些危险字符,注入到网站中,形成XSS攻击。一个最简单的输入就是:
<javascript>alert('xss')</javascript>
如何防止呢?大致思路有三种:
1.正则表达式的白名单过滤机制。
2.正则表达式的黑名单替换机制。
3.通过DOM对象过滤白名单和黑名单的标签。
下面这个地址列举了很多这样的过滤方法:
http://refactormycode.com/codes/333-sanitize-html
不过,我试了上面链接里的一些方法,并不是很好用。有一个更简单好用的东西,就是AntiXSS,由微软推出的用于防止XSS攻击的一个类库。它的实现原理也是使用白名单机制,不过这个白名单对我们来说是一个黑盒,我用reflector粗略看了一下,也没找到所谓的白名单在哪里。不过,这个库确实很好用。
一个MSDN里图文并茂的使用说明:http://msdn.microsoft.com/en-us/library/aa973813.aspx
其实我用的很简单,就是AntiXss.GetSafeHtmlFragment(html)方法,这个方法会替换掉html里的危险字符。比如:
varhtml="<ahref=\"#\"onclick=\"alert();\">aaaaaaaaa</a>javascript<P><IMGSRC=javascript:alert('XSS')><javascript>alert('a')</javascript><IMGsrc=\"abc.jpg\"><IMG><P>Test</P>";
stringsafeHtml=AntiXss.GetSafeHtmlFragment(html);
Console.WriteLine(safeHtml);
上面的危险内容被成功替换,返回的内容是:
<ahref="">aaaaaaaaa</a>javascript
<p><imgsrc="">alert('a')<imgsrc="abc.jpg"><img></p>
<p>Test</p>
嗯,非常安全。然后,又有一个疑问了,是应该将用户的输入过滤之后写入数据库呢?还是在输出界面显示的时候进行过滤?其实,通常来讲,在输出界面显示的时候进行过滤就够了,将用户输入过滤后写入数据库不是很必要,因为即使这样也无法保证数据库中没有危险的数据。当然,上个双保险也没有什么不好的
发帖前要善用
【
论坛搜索
】
功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
显身卡
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
Heg
回复楼主
返回列表
茶余饭后
网络攻防
旧帖回收
图文推荐
传世1.994天元心法版,啸天虎,副本任务,珍宝阁奖励
2011-06-30
最新烟雨寒雪暴力来袭靓装四连击传奇版本,给力嚣张,傲世青龙(3K引擎)
2011-07-01
新注册会员无法接收到验证邮件问题及解决方法
2011-12-17
2011最新火爆3D真彩地图,1.96梦幻变身QQ三钻黄金皓月升级版(...
2011-06-20
2003复古蓝色飞刀我本沉默,倚天劈地,押镖系统,九绝剑魔(Her...
2012-03-30
热门排行
1
2003复古蓝色飞刀我本沉默,倚天劈地,押镖系统,九绝剑魔(Her...
2
超爽给力3D真彩韩版诸神灭佛中变版,皇冠至尊,天地归一(Her...
3
1.96紫仙刺影四钻元素轻变版,冰神皓月,黄金矿工,紫仙合成(...
4
独家四皇冠《救世主》3D真彩地图中变靓装版,终结者神地(H...
5
2012最新青龍白虎中变皇冠之神靓装版,龙神宝殿,白虎之都(H...
6
1.95龙战刺影神龙合击版,刺影之城,神龙之地,幽冥神盾(3k引擎)
7
New盟重新城暗杀来袭第八季武动乾坤,枯海神舰,斗气大陆(Ma...
8
1.76复古精品加强版,爵位封号,亡灵古墓,夺宝奇兵,精品神殿(Hero引擎)