我看到幾個例子和人們用這種方式在登錄表單中查詢數據庫。 我不完全確定這是做登錄表單安全的最佳方式。用於登錄表單的簡單sql注入解決方案?
這是在PHP中查詢:
$query = "SELECT * FROM users WHERE usern = '".$_POST['username']."' AND passw = '".md5($_POST['password'])."'";
足夠有MD5()上的密碼後,以避免SQL注入? 我認爲md5函數會將所有字符和sql字符串轉換爲32個char字符串。
我可以使用哪些其他方式保護登錄表單?
+1對於準備好的語句 - 將要插入的數據傳遞爲**數據**要比將您寫入的SQL字符串與來自用戶的不受信任的字符串混合在一起 – Deebster 2012-03-30 15:41:22
明確+1準備好的語句......介意你**「mysql_real_escape_string()」**不會轉義「%」。請查看php.net/manual/en/function.mysql-real-escape-string.php – 2012-03-30 15:45:28
中的註釋部分是的,儘管這只是使用LIKE時的一個問題。你可以使用'addcslashes()'來提供幫助。 – MichaelRushton 2012-03-30 15:48:49