作者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
→ CaptainH:無法. 09/27 11:15
→ itisjoe:加驗證碼勒? 09/27 11:27
推 LaPass:驗證碼+1 09/27 11:37
→ MOONRAKER:這的確無法保證表單內容不被修改。 09/27 15:54
→ hSATAC:CSRF 關鍵字 09/28 08:18