当前位置: 首页 > 原理解释

csrf攻击原理与解决方法-防 CSRF 攻击原理与办法

黑客想搞砸你网站的登录按钮,他们不需求烧掉服务器,也不需求把你的数据库密码直接写在代码里。他们更精通一种“无中生有”的刺客,叫 CSRF(跨站请求伪造)。
你想想,你上次在自家门口修电脑,是不是顺手帮隔壁老王把门上的猫眼给修好了?这时候隔壁老王在旁边想:“嘿,我也帮个忙,顺便帮我老弟媳妇把家门重新锁上。”黑客就是这种赖皮 guy 的变体。 CSRF 的原理就藏在这句“我不是我,我只是你操作的工具”里。
只要你登录了网站,哪怕你是在换个浏览器,只要你的 Cookie 没变,黑客就能模仿你的身份。他们利用这个 Cookie 去拉取你刚刚想查的订单金额、修改你写的代码,就连直接篡改你刚签了字的那个合同。最恶心的是,你根本不知道这些操作是你的还是不是,就像你写了一篇代码,假装是你自己写的,结局别人拿去改了。 举个例子,你登录了某个电商网站。黑客脚本不像真正的黑客那样直接砸进数据库,而是伪装成一个浏览器窗口。你输入了用户名和密码,网站把确认登录的 Cookie 发给黑客。黑客拿到 Cookie 后,像个复读机一样,用你的账号去访问那些页面。
比方说,你刚刚想加个购物车,黑客趁机把商品数量改成 1000 片;要么你刚点了“应允隐私条款”,黑客就直接把条款改成了“应允不泄露任何数据”。
哪怕你点了“取消”,黑客也能把状态改回“已提交”。
只要你的 Cookie 还在,黑客就能偷走你的权限。 那会儿 sécurit 团队在防这事儿的时候,吃过大亏。他们当作只要把 HTTP 选项卡下的“检查 CSRF 令牌”那行代码给删了,要么在表单上标个"XSS"警告,黑客就不敢动手了。结局呢?黑客直接改进了自己的脚本,他们不再依赖前端显示的 CSRF 令牌,而是通过修改 HTTP 请求头,直接伪造一个看起来彻底合法的 Token。
这就好比你在门口修电脑,黑客把门上的锁给换了,你光看表面,如何也锁不住他。 那如何防?最好办的办法就是别轻易把登录状态发给别人,特别是发给那些没经过你验证的第三方。
比方说,登录后的 Token 发个请求去查库存,别人就知道是哪位在操作了,这 Token 就丧失了“神秘感”,黑客也就没法用你的账号去干坏事。
要么,你在登录协议里加个随机数,登录成功后生成一个唯一的随机串,把这个串存有你的 Cookie 里。黑客想伪造你的请求,得拿到这个随机数,但他得和你一直在线,这成本忒高了,也就让这种攻击变得有点“肉疼”。 还有啊,有时候前端工程师会搞点花活,比如给表单加个判断,要是页面没加载就禁用了提交按钮。黑客可能就会避开那些没动态加载的页面,专注去攻击那些逻辑复杂的页面。
要么,在登录页面直接显示一个“别人不能乱改我的登录状态”的提示框,别看这提示框本身可能暴露了漏洞,但好歹能提醒用户警惕一下。 说到底,CSRF 不是要你去死,它是提醒我们:网络上的身份认证,一直好办让人形成“我就如此点操作,哪位找我啊”的错觉。
要是你认定自己的登录密码设得够复杂,Cookie 加密得够严谨,并且动一个网页都要问一句“哪位让你如此干的”,那那些试图冒充你、偷换你权限的家伙,也就找不出任何借口了。
毕竟,没人愿意帮哥们儿修猫眼,更没人希望别人拿着自己的猫眼去修自家门。
相关标签:

猜你喜欢

热门阅读

  • 赖柴尔定理-赖柴尔定理
  • 迪拜哪个国家的城市?-迪拜在哪国城市
  • 李毅吧番号及出处-李毅吧番号及出处
  • 贴春联的由来简介50字-春联由来简述
  • 思乡的名言和出处-思乡名言及出处

其他分站