六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 107|回复: 0

使用Sanitize防止XSS攻击

[复制链接]

升级  40%

4

主题

4

主题

4

主题

童生

Rank: 1

积分
20
 楼主| 发表于 2013-2-7 19:29:18 | 显示全部楼层 |阅读模式
在网站中展示用户输入的信息时,hacker可以在里面放入一些脚本,执行的时候可以窃取cookie或打乱页面展现,ruby on rails中可以使用h()辅助方法将展示内容中的html标签或javascript标签过滤掉,但是对于需要展示富文本形式的网站,这种方式过于严厉,这种情况下可以使用Sanitize插件,Sanitize插件可以设置允许出现的html标签的白名单,白名单之外的标签都会被过滤,这样既保证了安全性,又可以选择性的展示富文本效果
使用方式:
1.安装:gem install sanitize
2.使用方法:参考:http://rgrove.github.com/sanitize/
1)Sanitize.clean(html) :会将html中所有的html标签过滤掉
2)Sanitize.clenn(html,param)
    param 可以是Sanitize::Config::BASIC 、Sanitize::Config::RELAXED、Sanitize::Config::RESTRICTED中的一种,分别代表基本、宽松和严格的过滤
3)使用自定义的过滤:Sanitize.clean(html,{ :elements => [ 'a', 'b', 'blockquote', 'br', 'cite', 'code', 'dd', 'dl', 'dt', 'em', 'i', 'li', 'ol', 'p', 'pre', 'q', 'small', 'strike', 'strong', 'sub', 'sup', 'u', 'ul'], :attributes => { 'a' => ['href'], 'blockquote' => ['cite'], 'q' => ['cite']}}
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表