XSS和CSRF
2019 network关于 XSS 攻击和 CSRF 攻击
XSS
跨站脚本攻击,Cross Site Script(XSS),XSS 攻击可以分为 3 类:反射型,存储型,基于 DOM XSS。
反射型
反射型 XSS 也叫做 “非持久型 XSS(Non-persistent XSS)”。
反射型 XSS 只是简单地把用户输入的数据“反射”给浏览器。也就是说,黑客往往需要诱使用户“点击”一个恶意链接,才能攻击成功。
存储型
存储型 XSS 会把用户输入的数据“存储”在服务器端。这种 XSS 具有很强的稳定性。
基于 DOM XSS
DOM 型 XSS 跟前两种 XSS 的区别:DOM 型 XSS 攻击中,取出和执行恶意代码由浏览器端完成,属于前端 JavaScript 自身的安全漏洞,而其他两种 XSS 都属于服务端的安全漏洞。
XSS 防御
HTTPOnly
浏览器将禁止页面的 JavaScript 访问带有 HttpOnly 属性的 Cookie。所以我们需要在 http 的响应头 set-cookie 时设置 httpOnly,让浏览器知道不能通过 document.cookie 的方式获取到 cookie 内容。
输入检查
在 XSS 的防御上,输入检查一般是检查用户输入的数据中是否包含一些特殊字符,如果发现存在特殊字符,则将这些字符过滤或者编码。
输出检查
一般来说,除富文本的输出外,在变量输出到 HTML 页面时,可以使用编码或转义的方式来防御 XSS 攻击。