【安全】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的过程。
在这里插入图片描述
在这里插入图片描述

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

猜你喜欢

转载自blog.csdn.net/Z_David_Z/article/details/113991837