將我的表單字段命名爲與我的列名稱相同是不好的?我的意思是人們真的這樣做:命名郵局密鑰的動態SQL查詢
<?php
$id = intval($_POST['user_unique_key']);
$name = mysql_real_escape_string($_POST['name_of_user']);
$email = mysql_real_escape_string($_POST['user_mail_thing']);
$address = mysql_real_escape_string($_POST['user_place_of_living']);
//....
$sql = "INSERT INTO `users`('id','name','email','address') VALUES($id,$name,$email,$address)"
?>
另外請注意,上述數據驗證是可怕的!我永遠不會使用它。
<a href="http://forums.devnetwork.net/viewtopic.php?f=50&t=118175">My Data Validation</a>
我應該使用表格前綴:'secret_prefix_'嗎?
我不太喜歡的最終解決方案是我可以使用雙向散列來散列字段名稱。因此,有輸入的名稱是
<?php echo $field_name = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $key, MCRYPT_MODE_ECB, $iv));?>
,然後一旦它被張貼
<?php
foreach($_POST as $name=> $value)
{
$input[base64_decode(mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $name, MCRYPT_MODE_ECB, $iv))] = $value;
}?>
安全層,你應該計劃在失敗之後,爲什麼密碼存儲爲一個散列。 – rook 2010-07-02 17:55:46
我同意層中的安全性,但我的觀點仍然支持:) – Bartek 2010-07-02 18:59:22