全部博文(32)
分类:
2010-10-11 22:19:52
1. script方式
跨站语句:
过滤语句:
Replace(str,”<”,”<”) ascii方式字符放入script块中不解释
Replace(str,”<”,”>”)
注:script块为服务器端语句,不进行ascii解释,所以过滤”<”、”>”基本可以防范跨站。
“xx;”是unicode的HTML表示方式,
格式为:+unicode编码的十进制数+;
2. HTML属性方式
(1) Src方式:无过滤
跨站语句:
过滤语句:
Replace(str,”javascript:”,””)
Replace(str,”jscript:”,””)
Replace(str,”vbscript:”,””)
注:HTML属性对解释ascii编码,所以可以用unicode+ascii方式绕过
(2)Src方式:过滤javascript等
跨站语句:字符转化为ascii;方式
过滤语句:
Replace(str,”&”,” &”)
(3)Src方式:过滤&等
跨站语句:字符中插入tab
过滤语句:
Replace(str,” ”,” ”)
(4)HTML事件方式:过滤&等
跨站语句:使用onerror事件
过滤语句:
Replace(str,”onerror”,””)
(5)HTML层叠样式表方式:过滤onerror事件
跨站语句:使用样式表
过滤语句:将空格过滤掉
Replace(str,” ”,””)
(5)HTML层叠样式表方式:过滤空格
跨站语句:使用注释符/**/ //
防XSS攻击方法总结:
1.过滤”<” 、”>”
将用户输入放入引号间,基本实现数据与代码隔离
2.过滤双引号
防止用户跨越许可的标记,添加自定义标记
3.过滤TAB和空格
防止关键字被拆分
4.过滤script关键字
5.过滤
防止HTML属性绕过检查