Chinaunix首页 | 论坛 | 博客
  • 博客访问: 77403
  • 博文数量: 32
  • 博客积分: 1440
  • 博客等级: 上尉
  • 技术积分: 375
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-25 16:03
文章分类

全部博文(32)

文章存档

2010年(12)

2008年(20)

我的朋友

分类:

2010-10-11 22:19:52

1. script方式
    跨站语句:
   
    过滤语句:
    Replace(str,”<”,”<”) &#ascii方式字符放入script块中不解释
    Replace(str,”<”,”>”)
    注:script块为服务器端语句,不进行ascii解释,所以过滤”<”、”>”基本可以防范跨站。
        “&#xxx;”是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属性绕过检查

阅读(2795) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~