学习笔记之CSRF初级篇

<强>

* * *往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比更具危险性。

<强>

<强>

学习笔记之CSRF初级篇

,

<强> SCRF触发条件

,

<强> CSRF的防御

& lt; ?php
//构造加密的饼干信息
$价值=https://www.yisu.com/zixun/癉efenseSCRF”;
setcookie(“饼干”,美元价值,时间()+ 3600);
?在

,,在表单里增加哈希值,以认证这确实是用户发送的请求。

& lt; ?php
$散列=md5 ($ _COOKIE[‘饼干’]);
?在
& lt;形式方法=癙OST”行动=皌ransfer.php”在
& lt;输入type=" text " name=" toBankId "在
& lt;输入type=" text " name=扒痹?br/> & lt;输入类型=耙亍眓ame=value=https://www.yisu.com/zixun/吧⒘?=$散列;?> ">
& lt;输入类型=" submit " name=" submit " value=https://www.yisu.com/zixun/碧峤弧?

& lt;/form>


,,& lt; ?php
,,,,,如果(收取($ _POST['检查'])),{
,,,,,,,,,,hash 美元;=md5 ($ _COOKIE[‘饼干’]);
,,,,,,,,,,如果($ _POST['检查'],==,哈希美元),{
,,,,,,,,,,,,,,,doJob ();
,,,,,,,,,,}, else  {
//?br/>,,,,,,,,,,}
,,,,}, else  {
//?br/>,,,,,}
,,,,, ?在


,& lt; ?php
,,,, function  gen_token (), {
,,,,,,,,,, token 美元;=,md5(函数(rand(),,真的),
,,,,,,,,, return 令牌美元;
,,,,}

,& lt; ?php
,,,,,function  gen_stoken (), {
pToken 美元;=,";
if ($ _SESSION [STOKEN_NAME],,==, pToken美元){
//没有值,赋新值
$ _SESSION [STOKEN_NAME],=gen_token ();
},,,
其他{
//继续使用旧的值
}
,,,,,}
,,,, ?在


& lt; ?php
,,,, function  gen_input (), {
,,,,,,,,,gen_stoken ();
,,,,,,,,, echo “& lt; input 类型=\”隐藏\”,名称=\”“,只FTOKEN_NAME 只“\”
,,,,,,,,,,,,,value=https://www.yisu.com/薄爸? _SESSION [STOKEN_NAME],只“\”祝辞,”;
,,,,,}
,,,, ?在

,& lt; ?php
,,,,,,,,, session_start ();
,,,,,,,,,包括(“显然也”);
,,,, ?在
,,,, & lt; form 方法=癙OST”, action=" transfer.php "在
,,,,,,,,, & lt; input  type=" text ", name=" toBankId "在
,,,,,,,,, & lt; input  type=" text ", name=扒痹?br/>,,,,,,,,, & lt; ?, gen_input();, ?在
,,,,,,,,, & lt; input 类型=疤峤弧?name=疤峤弧?价值=https://www.yisu.com/zixun/疤峤弧?
,,,, & lt;/FORM>



学习笔记之CSRF初级篇