如果我能夠使用PHP 5,這會更容易一些,但這不是一個可行的選擇嗎?
我已經在使用this stackoverflow thread的RFC 2822來驗證電子郵件格式是否有效,並且認爲這是在表單頁面上使用JS,這不是最佳實踐。
我將在保存之前再次驗證它是否符合此格式,但我想知道是否有任何方法可以幫助防止SQL注入?
如果我能夠使用PHP 5,這會更容易一些,但這不是一個可行的選擇嗎?
我已經在使用this stackoverflow thread的RFC 2822來驗證電子郵件格式是否有效,並且認爲這是在表單頁面上使用JS,這不是最佳實踐。
我將在保存之前再次驗證它是否符合此格式,但我想知道是否有任何方法可以幫助防止SQL注入?
錯誤的方式 - 「永遠不要相信用戶輸入」!
首先確保數據是你想要的格式,然後查詢數據庫。因此,首先檢查$ _POST [email_address]是否是有效的電子郵件格式,例如,與正則表達式。只有使用有效的電子郵件格式,才能查詢數據庫。
電子郵件正則表達式(PHP)代碼:
<?php
$email = "[email protected]";
if(eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)) {
echo "Email is valid.";
}
else {
echo "Email in invalid.";
}
?>
使用mysql_real_escape_string()輸入您已驗證了它的你應該使用在所有的輸入,會進入該功能的電子郵件後數據庫。
「不是最佳實踐」==「針對故意攻擊完全無用」 – Quentin 2012-02-14 16:15:07
不確定你的意思 - 防止SQL注入在PHP 4中與在PHP 5中相同。你的意思是電子郵件*標題*注射? – 2012-02-14 16:15:10
[停止SQL注入PHP的最佳方法]的可能的重複(http://stackoverflow.com/questions/60174/best-way-to-stop-sql-injection-in-php) – Quentin 2012-02-14 16:15:39