大家好,今天来介绍csrf攻击原理与解决方法(如何防止csrf攻击)的问题,以下是渲大师小编对此问题的归纳和整理,感兴趣的来一起看看吧!
什么是CSRF攻击
一.CSRF是什么?轿郑
CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。
二.CSRF可以做什么?
这可以这么理解CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮洞链件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账......造成的问题包括:个人隐私泄露以及财产安全。
三.CSRF漏洞纳帆孙现状
CSRF这种攻击方式在2000年已经被国外的安全人员提出,但在国内,直到06年才开始被关注,08年,国内外的多个大型社区和交互网站分别爆出CSRF漏洞,如:NYTimes.com(纽约时报)、Metafilter(一个大型的BLOG网站),YouTube和百度HI......而现在,互联网上的许多站点仍对此毫无防备,以至于安全业界称CSRF为“沉睡的巨人”。
如何防csrf攻击
目前防御CSRF攻击主要有三种策略:验证HTTPReferer字段;在请求地址中添加token并验证;在HTTP头中自定义属性并验证。
(1)验证HTTPReferer字段根据HTTP协议,在HTTP头中有一个字段叫Referer,它记录了该HTTP请求的来源地址。在通亮派常情况明燃下,访问一个安全受限页面的请求来自于同一个网站,比如需要访问http://bank.example/withdraw?account=bob&amount=1000000&for=Mallory,用户必须先登陆bank.example,然后通过点击页面上的按钮来触发转账事件。这时,该转帐请求的Referer值就会是转账按钮所在的页面的URL,通常是bank.example域名开头的地址。而如果黑客要对银行网站实施CSRF攻击,他只能在他自己的网站构造请求,当用户通过黑客的网站发送请求到银行时,该请求的Referer是指向黑客自己的网站。(2)在请求地址中添加token并验证CSRF攻击之所以能够成功,是因为黑客可以完全伪造用户的请求,该请求中所有的用户验证信息都是存在于cookie中,因此黑客可以在不知道这些验证信息的情况下直接利用用户自己的cookie来通过安全验证。要抵御CSRF,关键在于在请求中放入黑客所不能伪造的信息,并且该信息不存在于cookie之中。(3)在HTTP头中自定义属性并验证这种方法也是使用token并进行验证,和上一种方法不同的是,这里并不是把token以参数的形式置于HTTP请求之中,而是把它放到HTTP头中自定义的属性里。通过XMLHttpRequest这个类,可以一次性给所有该类请求加上csrftoken这个HTTP头属性,并把token值放入其中。这样解决了上种方法在请求中加入token的不便,同时,通过XMLHttpRequest请求的地址不会被记录到浏览器的地址栏,也不敬槐贺用担心token会透过Referer泄露到其他网站中去。
CSRF攻击原理1.用户C打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A;2.在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请求到网站A;3.用户未退出网站A之前,在同一浏览器中,打开一个TAB页访问网站B;4.网站B接收到用户请求后,返回一些攻击性代码,并发出一个请求要求访问第三方站点A;
什么是 CSRF 攻击如何避免
CSRF:Cross-Site Request Forgery(中文:跨站请求伪神辩造),可以理解为攻击耐判者盗用了你的身份,以你的名义发送恶意请求,比如昌瞎改:以你名义发送邮件、发消息、购买商品,虚拟货币转账等。
防御手段:
验证请求来源地址;
关键操作添加验证码;
在请求地址添加 token 并验证。
什么是csrf攻击
CSRF的攻击方式可以概括为:CSRF攻击者盗用了你的身份,并以你的名义发送恶意请求。
比如使用你的账号发送邮件,发消息,盗取你的账号,删除你的个人信息,隐桐购买商品,虚拟货币或银行转账。
总而言之拆携晌,就是会造成个人隐私泄露以及财产损失。
扩展资料:
防御csrf攻击
验证码
验证码是一种防御旅锋CSRF攻击有效方法。其原理是每一种操作都让用户输入验证码。
CSRF攻击是在攻击者的攻击站点中构造网络请求,然后用户在不知情的状况下触发,而强制输入验证码,则可以让用户知道当前在操作什么,进而达到预防的目的。
但这种方式有一个问题,就是每个操作都强制用户输入验证码,因此用户体验并不好,所以并不常用,只能作为一种辅助的预防手段。
CSRF攻击
除了XSS攻击外,还有一种叫CSRF的攻击不容小视。
什么是CSRF攻击呢?
与XSS攻击的不同之处在于,CSRF攻击不需要往用户的页面中注携行旦入恶意脚本。
常见的CSRF攻击有 自动发起get请求 , 自动发起post请求 , 诱导用户点击链接 三种方式。
在一个 img 标签里构建一个 get 请求,当页面被加载时,浏览器便会自动发起一个 get 请求。
在页面中隐藏一个表单,当用户打开页面时,自动提交这个表单。
如:
在 a 标签的 href 属性里构建一个请求,然后诱导用户去点击。
如何防止CSRF攻击呢?
发起CSRF攻击有两个条件,分别是用户登录了目标站点,且浏览器保留了用户的登录状态;用户打开了辩扰第三方站点。
攻击者会利用登录状态来发起CSRF攻击,而 Cookie 是保持登录状态的关键数据,所以,可以在 Cookie 上想办法防止CSRF攻击。
在 Cookie 中加入 sameSite 属性,samesite有三种值。
服务端验证请求源,如果请求来自非指定源,则服务端不做响应。
浏览器向服务端发送请求时,服务端生成一个带汪 CSRF Token ,并将它植入到返回的页面中。当再次发起请求时,就需要携带这个 CSRF Token ,如果没有这个token,则请求失败。
本文地址:https://gpu.xuandashi.com/73910.html,转载请说明来源于:渲大师
声明:本站部分内容来自网络,如无特殊说明或标注,均为本站原创发布。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。分享目的仅供大家学习与参考,不代表本站立场!