CSRF攻击与防御

CSRF攻击

CSRF(Cross Site Request Forgery,跨站点请求伪造),攻击者通过跨站请求,以合法用户的身份进行非法操作,如转账交易、发表评论等。CSRF的主要手法是利用跨站请求,在用户不知情的情况下,以用户的身份伪造请求。

Created with Raphaël 2.1.2 用户 用户 受信任网站A 受信任网站A 攻击者网站B 攻击者网站B (1)用户登录受信任服务器 (2)用户访问攻击者服务器 (3)响应消息中包含访问受信任服务器的请求 (4)在用户不知情下执行来自攻击者的请求

从上图可以看出,要完成一次CSRF攻击,受害者必须依次完成两个步骤:
1.登录受信任网站A,并在本地生成Cookie。
2.在不登出A的情况下,访问危险网站B。

CSRF防御

表单Token

CSRF是一个伪造用户请求的操作,所以需要构造用户请求的所有参数才构成攻击。表单Token通过在请求参数中增加随机数的办法来阻止攻击者获得所有请求的参数:在页面表单中增加一个随机数为Token,每次响应页面的Token都不一样,从正常页面提交的请求会包含该Token,而伪造者的请求无法获得该值,服务器检查请求参数中Token的值是否正确来确定提交者是否合法。
例如:可以在页面加入hidden参数,时间戳及它的散列值,在服务器端校验:计算时间戳的散列值是否和传入的参数一致。

验证码

相对来说,验证码更加简单有效,但是输入验证码是一个很差的用户体验。

Referer Check

HTTP请求头的Referer域中记录着请求来源,可通过检查请求来源,验证其是否合法。很多网站使用这个功能实现图片的防盗链(如果图片访问的页面来源不是来自自己网站的网页就拒绝)。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值