我知道如何確保上傳圖片Bypassing forms input fields to upload unwanted files我想給出另一個來自2個字段的例子,其中一個隱藏。隱藏字段輸入表格如何保護它
SQL表(ID,姓名,約旦第納爾,數量)
CREATE TABLE `users` (
`id` bigint(20) unsigned NOT NULL auto_increment,
`name` varchar(255) default '0',
`job` varchar(255) default NULL,
`number` varchar(255) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
表單代碼(支撐構件可以編輯自己的信息)
<form action="send.php" method="post" name="send" id="send">
<input type="text" name="name" id="name" value="John"/>
<input type="text" name="job" id="job" value="Plumber"/>
<input type=hidden name="number" id="number" value="1234"/>
<input type="Submit" name="Submit" value="Submit"/>
</form>
後來有一個Firefox擴展,可以繞過不同的輸入到服務器端的旁路檢查,並可能會造成很大的損害,所以在這裏它可以停止整個過程並使您能夠編輯隱藏表的值number
到任何如value="1"
導致成員更新信息有value number 1
。
該擴展工作如下,它可以僞造輸入數據之前,它傳遞到服務器端。
PHP代碼Send.php
if(isset($_POST['send'])){
$name = mysql_real_escape_string($_POST[name]);
$job = mysql_real_escape_string($_POST[job]);
$number = mysql_real_escape_string($_POST[number]);
$sql= "update users SET name='$name',job='$job' WHERE number='$number'";
mysql_query($sql) or die("query failed: $sql".mysql_error());
echo "Update Done";
} else {
echo "Nothing to update";
}
問題 那麼,如何保護這樣的輸入形式這種簡單的形式? 〜感謝
這個問題真的好痛因爲它使我的網站上免費給砍死:)
而不是綁定他們的數字,使用一個UNIQUE ID,如PHP的SESSION ID? – hjpotter92
您正在使用[an **過時的**數據庫API](http://stackoverflow.com/q/12859942/19068)並應使用[現代替換](http://php.net/manual/en/ mysqlinfo.api.choosing.php)。 – Quentin