关于CSRF(XSRF)的问题
目前防范CSRF的最有效途径就是在表单中加入随机数:
第一步:
<?php
//构造加密的Cookie信息
$value = “DefenseSCRF”;
setcookie(”cookie”, $value, time()+3600);
?>
第二部:
在表单里增加Hash值,以认证这确实是用户发送的请求。
<?php
$hash = md5($_COOKIE['cookie']);
?>
<form method=”POST” action=”transfer.php”>
<input type=”text” name=”toBankId”>
<input type=”text” name=”money”>
<input type=”hidden” name=”hash” value=”<?=$hash;?>”>
<input type=”submit” name=”submit” value=”Submit”>
</form>
具体可以参见这篇文章:http://www.cnblogs.com/hyddd/archive/2009/04/09/1432744.html
但我认为这种防范方式毫无意义:因为攻击者可以先访问表单页面,就可以获得input表单里面的$hash值。
不知道为什么这种防范方式都达到了大家的认同?
[解决办法]
仔细看看那个介绍
攻击者没有访问表单
只是 模拟和直接post表单