xss防范攻击

跨站脚本攻击(Cross-site scripting),简称XSS,是一种针对网页客户端的攻击手段。攻击者利用网站前后端代码的漏洞,将他自己的恶意代码嵌入页面中,然后诱导他人点击。一般这种攻击最容易造成的影响就是用户信息被盗,恶意代码可以将被害者的cookies信息以各种形式发给攻击者,这样子攻击者就能够伪装成被害者做任何事情。下图是腾讯公司近几年的漏洞占比,XSS占比高达25%,这问题非常常见,我们也要重点处理。

2、 跨站脚本攻击的方式

以我们一个线上素材代码为例:

        

可以看到,JS做的事情是,把URL中的几个参数取出,拼接在html中显示。

这里有个非常大的安全隐患。我构造了一个如下URL,并发给别人时:

 

./index.html?cover="/><script>alert(0)</script>

 

别人的手机其实就在执行我的攻击代码了,具体可见邮件中的代码包。

 

这只是其中一种攻击方式,还有常见的攻击方式是在评论中写入攻击代码,前端显示这条评论的时候,所有用户都会受到攻击,这种漏洞更为严重。

3、 如何防范

一句话,永远不相信用户数据。

所有用户可以修改的数据,包括评论发言、用户昵称、URL参数,都是危险的,都不可以直接放在页面上显示。

如果实在需要显示,一定要经过过滤,把恶意代码进行清理后再展示。

 

过滤步骤:


1、 引入XSS过滤的JS库xss.js


2、 对不安全的输入进行过滤,建议在显示的时候进行过滤


3、 如果是元素本身并不需要html的话,可以直接使用Zepto内置的text方法。text方法修改的是元素textContent属性,仅作为文本显示,而不像html方法修改innerHtml容易造成XSS。


4、这里仅仅举例了从URL获取参数拼在html中的情况,同样的,从服务器拉取评论填入html等类型的操作,也要进行这样的处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西安小哥

劳动不易

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值