2
我有一個網址,則有效時是這樣的:SQL注入預防 - GET_VARS
site.com/page.php?id=12345
我想明白,如果我們vunderable SQL注入。在這個特定的實例中,該值應該只是一個正整數值,因爲它是一個id號。我們有時會使用其他變量,可能是字母或文本字符串,例如搜索結果頁面。
用於提取ID變量的代碼的一個例子是在這裏:
$variable = "0";
if (isset($HTTP_GET_VARS["id"])) {
$variable = (get_magic_quotes_gpc()) ? $HTTP_GET_VARS["id"] : addslashes($HTTP_GET_VARS["id"]);
}
在獲得從URL可變的大多數情況下,它是接近這種方式。
這是否在做任何事情來防止sql注入?
我應該使用mysql_real_escape_string嗎?
我一直在閱讀有關預處理語句,但它似乎令人望而生畏,我們在網站上遍佈各處使用這些變量來處理大量頁面和查詢。在短期或中期內進行並取代它們是不可行的。
如果有另一種方法去驗證沒有準備好的語句的數據,任何建議將不勝感激。
在此先感謝。
您正在使用哪個PHP版本? – BlitZ
你應該使用'mysqli'或'pdo'而不是舊的,很快就會被棄用'mysql'函數。 – Cyclonecode
使用準備好的語句檢查此問題http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php/14110189#14110189 –