xss攻击与防御
XSS Cross Site Scripting 跨站脚本 Scripting 能干啥? 获取页面数据----偷取网站任意数据资料 获取 cookies----偷取用户资料 劫持前端逻辑----偷取用户密码和登录状态 发送请求---欺骗用户 .... Xss 攻击分类 反射性 url 参数直接注入 存储性 存储到 DB 后读取时注入 XSS 攻击注入点 HTML 节点内容 <div> #{content} </div> <div> <div> <script></script> </div> </div> HTML 属性 <img src="#{image}" /> <img src="1" onerror="alert(1)" /> JavaScript 代码 <script> var data = "#{data}"; var data = "hello;alert(1);""; </script> 富文本 富文本保留 HTML HTML 有 XSS 攻击的风险 防御机制 浏览器自带有防御机制,但很弱 ctx.set('X-XSS-Protection',1)//默认开启浏览器防护 html 节点内容 对字符串进行转义处理 转义 < < 和 > > var escapeHtml = function(str) { if (!str) return ""; str = str