XSS攻击

攻击方式

1.反射型

发出请求时,XSS代码出现在URL中,作为输入提交到服务器端,服务器端解析后响应,XSS代码随响应内容一起传回给浏览器,最后浏览器解析执行XSS代码。这个过程想一次反射,故叫反射型XSS。

// 适用范围:后端接口会根据url后面拼接传参的参数原样返回的
// 浏览器植入XSS脚本
localhost:3000/?xss=<img%20src="null"%20onerror="alert(1)"/>
// 植入文字
localhost:3000/?xss=<p%20onclick="alert(%27点我%27)">点我</p>
// 嵌套网站
localhost:3000/?xss=<iframe%20src="//baidu.com/t.html"></iframe>

2.存储型

存储型XSS和反射型XSS的差别仅在于,提交的代码会存储服务器端(数据库,内存,文件系统等),下次请求目标页面时不用再提交XSS代码。

防御措施

1.过滤

移除用户上传的DOM属性,如onerror等,移除用户,上传的Style节点、Script节点、Iframe节点等

2.校正

避免直接对HTML Entity解码
使用DOM parse转换,校正不配对的DOM标签

posted @ 2019-01-04 11:37  福小松  阅读(184)  评论(0编辑  收藏  举报