问题说这一切有希望,如果我检查一个变量为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