【安全】P 5-4 CSRF漏洞token防御介绍

0X01 漏洞修补逻辑分析

CSRF漏洞实质:服务器无法准确判断当前请求是否是合法用户的自定义操作。
如果服务器在用户登录之后给予用户一个唯一合法令牌,每一次操作过程中,服务器都会验证令牌是否正确,如果正确那么执行操作。不正确不执行操作。
一般情况下,给予的令牌会写入表单中隐藏域的value值中,随着表单内容进行提交。

0X02 简单代码模型分析

在这里插入图片描述

远程构造CSRF利用POC,那么直接中招。如果利用在增删改中设置唯一令牌,执行操作时只有提交令牌才能操作的话,就可以有效防止CSRF。如果令牌不正确,那么不执行操作。并给出提示内容。

0X03 生成Token代码分析

Token作为识别操作是否是当前用户自己操作的唯一凭证,需要设置为复杂难以被破解的内容。
例如:

function generateToken(){
  $salt = “test” . date("Y/m/d") ;   出现问题
  $token = md5($salt);
  return $token;
}

调用函数查看生成的token

在这里插入图片描述

0X04 使用Token进行CSRF漏洞防御

1、登录验证成功之后,在会话SESSION[“user_token”]中保存Token。
2、在后台操作中,增删改表单中添加隐藏域 hidden,设置value为Token。
3、提交之后进行验证Token是否正确。
简化代码演示:
Token验证过程,从实践中理解Token防御CSRF的过程。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值