无csrf防护的html页面,登录表单是否需要 CSRF 保护?

2020-02-18 补充:在说『登录 CSRF』之前先说说『CSRF(Cross Site Request Forgery)』,即跨站请求伪造。举一个真实发生过的例子,攻击者先在自己网站上创建一个页面,这个页面有一个表单,表单的提交路径却是新浪微博发新微博的地址,并且这个页面有 JS 可以让页面加载完毕的时候就自动提交表单的内容。攻击者再想各种办法,骗新浪微博某些大 V 去点击这个页面的链接,受害大 V 只要在新浪微博是登录状态,表单的内容就会成功被发送。如果攻击者的页面通过 iframe 等方式隐藏页面,大 V 们可能『被动』发了微博都没有任何感知。防守也不难,页面显示表单时,给每台设备分配不同的随机码,而处理表单提交的时候,需要验证随机码是否一致。而随机码跟设备是绑定的,攻击者不可能猜的出来受害者的设备的随机码是什么,从而防止了 CSRF 攻击。而这个随机码,就叫 CSRF Token。

再说回『登录 CSRF』这个话题。在过去相当长一段时间里,我认为登录表单是不需要 CSRF 保护的。我的想法是,让受害者在不知情的情况下做一些对攻击者有意义的『操作』才是 CSRF 存在的意义(比如让大 V 发布一些营销类的信息)。骗一个人去登录,意义何在呢?

后来专门上网查阅了一下,才发现事情没这么简单,原来还可以这么玩儿,依然以微博为例子:

攻击者在新浪微博创建一个帐号

通过登录 CSRF 让被攻击的用户在不知情的情况下登录微博

不明真相的受害者如果不注意,还以为是自己的微博账户,创建了相册,并且上传了一些非公开的照片

攻击者再登录此账户,就可以随意浏览受害者刚上传的非公开照片了

虽然不如普通 CSRF 造成的危害直接,不过对于注重用户隐私的网站,是没有理由不防此种攻击的。

附上:斯坦福关于 CSRF 的资料,我不创造姿势,我只做姿势的搬运工

df83231bee01dd4e52438731a8a0385e.png

写作累,服务器也越来越贵

求分担,祝愿好人一生平安

天使打赏人

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值