問題說這一切有希望,如果我檢查一個變量爲is_numeric()返回true,可以直接放入MySQL查詢,還是我需要應用標準轉義?我在想空字符,溢出漏洞和東西。is_numeric()是否意味着var對MySQL安全?
一個不明確的例子是:
if(is_numeric($_GET['user_id'])) {
mysql_query("SELECT * FROM `users` WHERE id = ".$_GET['user_id']);
}
數據類型在MySQL是INT()。
是$ _GET ['user_id']還是$ _POST ['user_id']? – 2010-12-09 09:45:00
就是這樣的例子:)把它們都更改爲$ _GET – Dunhamzzz 2010-12-09 09:53:45
**不要將數據驗證和數據清理混合在一起!** if(is_numeric(是數據驗證。**可以在將來更改**。雖然清理規則會準備好的陳述的唯一好處在於同樣的理由:如果你需要清理一個變量,它不會*認爲*。**它可以。**時期。所以,要聰明,學會從這個良好的實踐中,根據需要驗證您的輸入,但無條件地清理數據庫變量 – 2010-12-09 10:04:39