CSRF的防范

 CSRF(Cross Site Request Forgery)是常见的web攻击,攻击者诱使用户访问一个页面,就以该用户身份在第三方站点里执行操作,进行攻击。

CSRF的攻击过程,往往是在用户不知情的情况下构造了网络请求。

1、添加验证码

  •  验证码强制用户必须与应用进行交互,才能完成最终请求。
  •  验证码是一种辅助手段,不能作为最主要的解决方案。

2、referer检查

检查请求header中的referer也能帮助防止CSRF攻击,但服务器不是总能拿到referer,浏览器可能出于安全或隐私而不发送referer,所以也不常用。图片防盗链中用得很多。

3、Anti CSRF Token

更多的是生成一个随机的token,在用户提交数据的同时提交这个token,服务器端比对后如果不正确,则拒绝执行操作

4、Use the Same-Site Flag in Cookies

The Same-Site Flag in Cookies是一种相对较新的方法,用于防止CSRF攻击。假设https://attacker.com/可以发送POST请求与会话cookie一起到https://example.com/。此会话cookie对于每个用户是唯一的,并且Web应用程序使用它来区分不同的用户其他, 并确定您是否已登录。 

如果会话cookie被标记为 同一站点cookie,它只与源自同一域的请求一起发送。因此,假设https://example.com/index.php想要发送POST请求到https://example.com/post_comment.php。使用相同的网站Cookie,这是允许的。 

但是,如果https://attacker.com/想要发布https://example.com/post_comment.php的发布请求,则会话cookie将不会与请求一起发送,因为它是不同的域。这意味着如果攻击者的网站发送请求,它会发送没有会话cookie。因此,Web应用程序假定您没有登录并拒绝请求,成功阻止了跨站点请求伪造尝试。 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章