作者kencool107 (脸都歪了)
看板PHP
标题[请益] 如何防止远程表单攻击
时间Thu Sep 27 11:03:36 2012
我想请问一下
有什麽方法可以防止这种攻击
检查REFFER可以伪装
网路上说用session
可是我看不太懂是什麽意思
而且我照做
还是可以另存页面再改掉提交
这是传送端A.php
<?php
session_start();
$token = md5(uniqid(rand(), true));
$_SESSION['token']= $token;
?>
<form action="
http://XXXX/B.php" method="post">
<p><label for="name">Name</label>
<input type="text" name="name" id="name" size="20" maxlength="40"/></p>
<input type="hidden" name="token" value="<?php echo $token;?>"/>
<p><input type="submit" name="submit" value="go"/></p>
</form>
这是接收端B.php
<?php
session_start();
if ($_POST['submit'] == "go"){
if ($_POST['token'] == $_SESSION['token'])
{
echo "success";
}else{
echo "fail";
}
}
?>
可是我先开A 然後复制A的原始码到我的本机改值
然後再送到B
他检查session还是相同的 逻辑来看好像是这样没错
所以要怎麽做哩
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 60.248.110.133
1F:→ CaptainH:无法. 09/27 11:15
2F:→ itisjoe:加验证码勒? 09/27 11:27
3F:推 LaPass:验证码+1 09/27 11:37
4F:→ MOONRAKER:这的确无法保证表单内容不被修改。 09/27 15:54
5F:→ hSATAC:CSRF 关键字 09/28 08:18