考慮這個片段中,
*mysqltest.php*
$user_id= $_GET['user_id'];
$user_id= mysql_real_escape_string($user_id);
$query = "SELECT * FROM people WHERE uid=".$user_id;
echo $query;
//then execution ..
現在,當我們把這個腳本「mysqltest。 php?user_id = 56或1「
查詢結果爲 SELECT * FROM people WHERE uid = 56 or 1並且導致注射成功。
那麼我們應該如何保護自己在這種情況下列的數值類型?
在沒有使用pdo或預處理語句的情況下,是否還有其他解決方法?
is_numeric($ USER_ID)的preg_match( 「/^[0-9] + $ /」,$ USER_ID) – 2013-02-02 12:05:16
HTTP:/ /stackoverflow.com/a/2995163/285587 –
您是否正在尋找一種在調用數據庫調用之前驗證數據的方法? – Tadeck