
发布时间:2019-01-10 15:47:00 文章来源: 点击量:641
XSS 攻击是页面被注入了恶意的代码,为了更形象的介绍,我们用发生在小明同学身边的事例来进行说明。
一个案例
某天,公司需要一个搜索页面,根据 URL 参数决定关键词的内容。小明很快把页面写好并且上线。代码如下:
然而,在上线后不久,小明就接到了安全组发来的一个神秘链接:
小明带着一种不祥的预感点开了这个链接<span style="color:red">[请勿模仿,确认安全的链接才能点开]</span>。果然,页面中弹出了写着”XSS”的对话框。
可恶,中招了!小明眉头一皱,发现了其中的奥秘:
当浏览器请求形成了如下的 HTML:
浏览器无法分辨出 <script>alert(‘XSS’);</script> 是恶意代码,因而将其执行。
这里不仅仅 div 的内容被注入了,而且 input 的 value 属性也被注入, alert 会弹出两次。
面对这种情况,我们应该如何进行防范呢?
其实,这只是浏览器把用户的输入当成了脚本进行了执行。那么只要告诉浏览器这段内容是文本就可以了。
聪明的小明很快找到解决方法,把这个漏洞修复:
escapeHTML() 按照如下规则进行转义:
经过了转义函数的处理后,最终浏览器接收到的响应为:
恶意代码都被转义,不再被浏览器执行,而且搜索词能够完美的在页面显示出来。
联系我们
contact us地址:温州高新技术产业园区10号小区(留学生创业园)G栋3楼
电话:+400-057-7799
点击图标在线留言,我们会及时回复