CSRF漏洞的各种情况
第一种
用户登录了网站,黑客发一个url 链接 www.bank.com/update?name=zhansan&amount=80,诱导用户点击,跳转到已登录的浏览器就会造成损失
第二种
自己网站上有XSS漏洞,黑客利用XSS漏洞,在自己的网站上放了一个恶意代码,然后通过恶意代码触发攻击造成损失
旧版本
很久以前旧版本,from 表单发起跨域的请求会携带cookie信息,还有iframe嵌套的页面,也可以跨域获取cookie的,现在新版本都不行了
防御
1 验证HTTP Referer字段
验证请求来源,防止各种跨域携带cookie到本网站的,确保请求来源于是自己的页面
// 获取请求是从哪里来的
String referer = request.getHeader("referer");
// 如果是直接输入的地址,或者不是从本网站访问的重定向到本网站的首页
if (referer == null || !referer.startsWith("http://localhost")) {
response.sendRedirect("/day06/index.jsp");
// 然后return,不要输出后面的内容了
return;
}
2 用POST请求
黑客一般都通过红包、奖品、优惠券、邮箱等形式诱导用户
这些都是一个URL连接,一个URL连接是不能发起POST请求的,URL跳转到浏览器的都是发起GET请求
3 关键接口使用添加token并验证
黑客攻击之所以能够成功,是伪造用户的请求,直接利用 cookie 来通过安全验证。现在我们只有不将token放到cookie中,黑客就无法伪造
4 防范XSS漏洞
使用工具类对用户输入的字符作HTML转义