CSRF漏洞Token防御介绍

1.漏洞修补逻辑分析
CSRF漏洞实质:服务器无法准确判断当前请求是否是合法用户的自定义操作。如果服务器在用户登录之后给予用户一个唯一合法令牌,每一次操作过程中,服务器都会验证令牌是否正确,如果正确那么执行操作。不正确不执行操作。

一般情况下,给予的令牌会写入表单中隐藏域的value值中,随着表单内容进行提交。
2.简单代码模型分析
CSRF漏洞Token防御介绍_第1张图片
3.生成Token代码分析
Token作为识别操作是否是当前用户自己操作的唯一凭证,需要设置为复杂难以被破解的内容。

例如:

function generateToken(){
$salt = “test” . date(“Y/m/d”) ; 出现问题
t o k e n = m d 5 ( token = md5( token=md5(salt);
return $token;
}

调用函数查看生成的token
4.使用Token进行CSRF漏洞防御
1、登录验证成功之后,在会话SESSION[“user_token”]中保存Token。

2、在后台操作中,增删改表单中添加隐藏域 hidden,设置value为Token。

3、提交之后进行验证Token是否正确。
简化代码演示:
Token验证过程,从实践中理解Token防御CSRF的过程。

你可能感兴趣的:(web安全,csrf)