千锋教育-做有情怀、有良心、有品质的职业教育机构
1. iframe
2. opener
3. CSRF(跨站请求伪造)
4. XSS(跨站脚本攻击)
5. ClickJacking(点击劫持)
6. HSTS(HTTP严格传输安全)
7. CND劫持 很难通过技术手段完全避免 XSS,但我们可以总结以下原则减少漏洞的产生:
- 利用模板引擎开启模板引擎自带的HTML转义功能。例如: 在ejs中,尽量使用 <%= data %>而不是 <%- data %>;在doT.js 中,尽量使用 {{! data } 而不是 {{= data };在 FreeMarker中,确保引擎版本高于 2.3.24,并且选择正确的 freemarker.core.OutputFormat。
- 避免内联事件 尽量不要使用 onLoad="onload('{{data}}')"、onClick="go('{{action}}')" 这种拼接内联事件的写法。在 JavaScript 中通过 .addEventlistener() 事件绑定会更安全。
- 避免拼接HTML前端采用拼接HTML的方法比较危险,如果框架允许,使用createElement、 setAttribute 之类的方法实现。或者采用比较成熟的渲染框架,如 Vue/React 等。
- 时刻保持警惕在插入位置为DOM属性、链接等位置时,要打起精神,严加防范。
- 增加攻击难度,降低攻击后果通过CSP、输入长度配置、接口安全措施等方法,增加攻击的难度,降低攻击的后果。
- 主动检测和发现 可使用 XSS 攻击字符串和自动扫描工具寻找潜在的 XSS 漏洞。
相关推荐