crsf攻击与防御

CSRF(跨站请求伪造)是一种攻击方式,利用已登录用户的cookie执行非本意操作。攻击者通过构造链接或表单进行欺诈,导致用户在不知情下执行敏感操作。防御措施包括使用POST提交数据、验证码、验证Referer字段和添加令牌验证。令牌验证通过为每个表单生成随机秘钥,防止攻击者伪造请求。
摘要由CSDN通过智能技术生成

 CSRF的全名为Cross-site request forgery,它的中文名为 跨站请求伪造(伪造跨站请求【这样读顺口一点】)

  CSRF是一种夹持用户在已经登陆的web应用程序上执行非本意的操作的攻击方式。相比于XSS,CSRF是利用了系统对页面浏览器的信任,XSS则利用了系统对用户的信任。

由上图分析我们可以知道构成CSRF攻击是有条件的:

  1、客户端必须一个网站并生成cookie凭证存储在浏览器中

  2、该cookie没有清除,客户端又tab一个页面进行访问别的网站


 假设某游戏网站的虚拟币转账是采用GET方式进行操作的,样式如:

1 http://www.game.com/Transfer.php?toUserId=11&vMoney=1000

 

  此时恶意攻击者的网站也构建一个相似的链接:

  1、可以是采用图片隐藏,页面一打开就自动进行访问第三方文章:<img src='攻击链接'>

  2、也可以采用js进行相应的操作

http://www.game.com/Transfer.php?toUserId=20&vMoney=1000         #toUserID为攻击的账号ID

 

  1、假若客户端已经验证并登陆www.game.com网站,此时客户端浏览器保存了游戏网站的验证cookie

  2、客户端再tab另一个页面进行访问恶意攻击者的网站,并从恶意攻击者的网站构造的链接来访问游戏网站

  3、浏览器将会携带该游戏网站的cookie进行访问,刷一下就没了1000游戏虚拟币

游戏网站负责人认识到了有被攻击的漏洞,将进行升级改进。

  将由链接GET提交数据改成了表单提交数据

复制代码
//提交数据表单
<
form action="./Transfer.php" method="POST">     <p>toUserId: <input type="text" name="toUserId" /</p>     <p
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值