CSRF:Cross Site Request Forgy(跨站请求伪造)

用户打开另外一个网站,可以对本网站进行操作或攻击。容易产生传播蠕虫。

 

CSRF攻击原理:

 

1、用户先登录A网站

2、A网站确认身份返回用户信息

3、B网站冒充用户信息而不是直接获取用户信息,从B网站页面向A网站发起请求(携带A网站身份)

 

CSRF危害:

利用用户登录态

用户不知情

完成业务请求

盗取用户资金

冒充用户发帖

损坏网站名誉等等

 

如何防御CSRF:

原理步骤3具体细节:

  (1)B网站向A网站请求

  (2)带A网站Cookies

  (3)不访问A网站前端

  (4)referer为B网站

通过这些细节特征我们可以制定以下防御策略:

1、禁止第三方网站带Cookies,cookies中新增了same-site属性可禁止,缺点是浏览器兼容性。

2、在A网站前端加入验证信息,只有访问A网站获得验证信息才能正确发送请求。如验证码,token。

token防御的关键是cookies和表单或者页面中都要存储token值,cookie的值和页面的值需要做比对。

初级做法有个弊端,只有最后一个页签的token可以使用,前面打开的页签token会失效。

解决token失效问题可以给token设置有效时长存储多个token,过期token提示用户刷新页面从而获取新token。

3、验证referer,禁止来自第三方网站的请求。验证时需要代码严格验证,不然可以使用带参数来绕过非严格验证的判断。

 

内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/MarsPGY/p/15808251.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!