CSRF详解(跨站请求攻击原理、实例、检测方法、如何防御CSRF的4种方式和各自缺点(提交验证码、验证HTTP Referer字段、请求地址中添加token和在HTTP头中自定义属性))

本文介绍了CSRF(跨站请求伪造)攻击的基本概念、工作原理及其防御措施。详细解释了CSRF攻击如何利用用户已登录状态执行非法操作,并提供了实例演示。此外,还探讨了几种常见的防御策略和技术。

目录

简介

原理

实例

CSRF漏洞检测 

防御CSRF

提交验证码

验证 HTTP Referer 字段 

缺点

        请求地址添加 token 验证

缺点

        在 HTTP 头中自定义属性并验证

缺点


简介

跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 XSRF, 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。跟跨网站脚本(XSS)相比,XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。

原理

攻击者通过一些技术手段欺骗用户的浏览器去访问一个自己曾经认证过的网站并运行一些操作(如发邮件,发消息,甚至财产操作如转账和购买商品)。由于浏览器曾经认证过,所以被访问的网站会认为是真正的用户操作而去运行。这利用了web中用户身份验证的一个漏洞:简单的身份验证只能保证请求发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的

 攻击者并不能通过CSRF攻击来直接获取用户的账户控制权,也不能直接窃取用户的任何信息。他们能做到的,是欺骗用户浏览器,让其以用户的名义运行操作

 

实例

银行站点A:它以GET请求来完毕银行转账的操作,如:http://www.mybank.com/Transfer.php?toBankId=11&money=1000 

恶意站点B:它里面有一段HTML的代码例如以下:

<img src=http://www.mybank.com/Transfer.php?toBankId=11&money=1000>
        首先。你登录了银行站点A,然后再访问危机站点B,这时你会发现你的银行账户少了1000块为什么会这样呢?原因是银行站点A违反了HTTP规范,使用GET请求更新资源。

      

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值