XSS:跨站脚本攻击
用户访问被嵌入脚本的web页面,触发脚本的执行,导致用户的cookie信息被黑客获取,以用户的身份执行执行操作
这个被嵌入脚本web页面,可能是黑客的钓鱼网站,也有可能是别黑客发现漏洞植入脚本的正常服务器
防止:
- 过滤任何用户的提交内容,防止脚本被存储到服务器
- 对输出进行HTML编码,防止脚本的执行
CSRF: 跨站请求伪造
已经处于登陆状态的用户,访问黑客的链接导致,黑客直接以已经登录的用户身份,发起黑客需要的请求。
防止:
- 检查http首部的refer字段的值,是否是网站自身的
优点:简单
缺点:
1. 不安全,refer可以通过浏览器的漏洞进行修改
2. refer可以被禁止 - 通过在请求中携带额外的随机token并验证,token不通过cookie发送到服务器
优点:比refer更安全
缺点:实现稍微复杂,需要考虑 token的存储安全 - 在 HTTP 头中自定义属性并验证
通过 XMLHttpRequest 这个类,可以一次性给所有该类请求加上 csrftoken 这个 HTTP 头属性优点:简单,token不容易泄露
缺点:使用场景少,局限性大