跨站脚本攻击与客户端JavaScript事件处理
1. 跨站脚本攻击(XSS)
1.1 XSS攻击原理
当URL编码的参数被解码时,可能会导致恶意HTML代码注入到文档中。例如,以下URL解码后会将包含JavaScript代码的HTML注入文档:
Hello <img src="x.png" onload="alert('hacked')"/>
当图片加载完成后, onload 属性中的JavaScript代码会被执行,调用全局的 alert() 函数显示一个模态对话框。虽然单个对话框危害相对较小,但这表明该网站存在任意代码执行的风险,因为它显示了未经过清理的HTML。
1.2 XSS攻击方式
跨站脚本攻击涉及多个站点。站点B包含一个精心设计的指向站点A的链接,如果站点B能说服用户点击该链接,用户将被带到站点A,但此时站点A会运行来自站点B的代码。这些恶意代码可能会破坏页面、导致页面故障,更危险的是,它可以读取站点A存储的cookie(如账号信息或其他个人识别信息)并将数据发送回站点B,甚至可以跟踪用户的按键操作并发送数据。
1.3 防范XSS攻击的方法
1.3.1 清理HTML标签
在使用不可信数据创建动态文档内容之前,应移除其中的HTML标签。可以通过将不可信输入字符串中的特殊HTML字符替换为其对应的HTML实体来修复问题,示例代码如下:
超级会员免费看
订阅专栏 解锁全文
2114

被折叠的 条评论
为什么被折叠?



