XSS 和 CRSF 攻击
machao07 opened this issue · comments
1、XSS(Cross Site Scripting)
跨站脚本, 是发生在目标用户的浏览器层面上的,当渲染 DOM 树的过程成发生了不在预期内执行的 JS 代码时,就发生了 XSS 攻击。
- 大多数 XSS 攻击的主要方式是嵌入一段远程或者第三方域上的 JS 代码。
- 实际上是在目标网站的作用域下执行了这段 JS 代码。
2、CSRF(Cross Site Request Forgery)
跨站请求伪造,字面理解意思就是在别的站点伪造了一个请求。
在受害者访问一个网站时,其 Cookie 还没有过期的情 况下,攻击者伪造一个链接地址
发送受害者并欺骗让其点击
,从而形成 CSRF 攻击。
3、XSS 防御的总体思路
对输入(和 URL 参数)进行过滤,对输出进行编码。
- 对提交的所有内容进行过滤,对 url 中的参数进行过滤,过滤掉会导致脚本执行的相关内容;
- 对动态输出到页面的内容进行 html 编码,使脚本无法在浏览器中执行。虽然对输入过滤可以被绕过,但是也还是会拦截很大一部分的 XSS 攻击。
4、防御 CSRF 攻击主要有三种策略
- 验证 HTTP Referer 字段;
- 在请求地址中添加 token 并 验证;
- 在 HTTP 头中自定义属性并验证