CSRF

 

  CSRF是Cross Site Request Forgery的缩写(也缩写为XSRF),直译过来就是跨站请求伪造的意思。

 

  举个CSRF攻击的例子:我们登录bbs论坛后修改个人资料,论坛服务器更新个人资料的url是www.bbs.com/save.do?user=xx&password=xx&birthday=xxx。当然要修改个人资料的前提是此用户要先登录,登录成功记录到cookie后,论坛就认为此用户是合法的,那么此用户修改个人资料(提交url:www.bbs.com/save.do?user=xx&password=xx&birthday=xxx)是可以的。

想象一个坏蛋在论坛中发了一个图片,你也已经登录了论坛,你看到这个图片很好奇,就点进去,但是这个图片的链接是“www.bbs.com/save.do?user=xx&password=xx&birthday=xxx”,服务器会响应这个链接请求的,因为你已经登录了,这样点击图片后你的个人资料就被修改了。

 

    网站服务器怎么避免CSRF漏洞?

    我们正常在网站中修改数据都是通过提交form表单进行的,提交后无论是get或post方式都会带上新数据,并生成一个请求保存数据的url发送给网站服务器,然后网站服务器会做响应。如果form表单是他人恶意伪造的,而不是网站正常渲染出来的form表单,那么你提交了这个恶意的表单后就会被修改数据。那么网站怎么判断这个表单提交过来的url是合法正常的,还是他人恶意构造的呢?很简单,只要网站在正常渲染form表单的时候,在session中存放一个token,并put到form表单中的一个隐藏域,当提交form表单后这个token也被一并提交给服务器,这时候服务器拿session中的token和提交的这个token做对比,如果一样则代表这是一个正常生成的表单,是一个合法的url,否则就是非法的。因为构造恶意的表单无法得知你的session回话中的token值,所以就算是伪造token也无法伪造正确的token,这样就可以避免被攻击了。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值