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