我可以安全地假设(如果我只是获得一个ID号)is_numeric是否足以阻止SQL注入攻击?或者是否有可以通过is_numeric传递的sql注入方法?在PHP中可以通过is_numeric函数进行sql注入吗?
回答
你会得到更好的服务,只是做的事:
$id = isset($_GET['id']) ? (int) $_GET['id'] : 0;
这样就可以避免is_numeric
功能的开销。尽管这两种方法都足以避免注入(只要你对数据做了某些事情,如果is_numeric
返回FALSE)。如果所讨论的$ _GET变量不存在,三元运算符还会确保您不会收到E_NOTICE。
你能描述函数调用的开销与三元运算符相比有多高? – KingCrunch 2012-01-02 21:11:14
@KingCrunch:你不一定要使用这种方法。它不提供验证输入的机会。 – 2012-01-02 21:12:05
@KingCrunch我知道'开销'的争论可能会引发宗教书呆子的战争,但我没有看到如何避免一个不必要的函数调用永远不会是坏事。 – rdlowrey 2012-01-02 21:13:22
您可以使用intval
或floatval
。
不,没有。但是,请注意,例如is_numeric('0xaf5') == true
,因此根据您想实现的目标可能还不够。
- 1. Bypass php is_numeric()函数是可能的吗?
- 2. 可以从函数CreateODBCDate()进行代码注入吗?
- 3. 通过LINKS进行SQL注入?
- 4. 通过mysql_query进行SQL注入
- 5. 我可以通过php函数触发一个javascript函数吗?
- 6. AJAX可以通过非SSL进行吗?
- 7. 可以通过playORM中的嵌入字段进行索引吗?
- 8. 可以通过cygwin运行php exec吗?
- 9. 你可以在函数中通过cfscript做可选参数吗?
- 10. 这个函数可以防止sql注入和xss吗?
- 11. 可以通过innerHTML将<select>函数放入表中吗?
- 12. 我可以通过使用参数避免所有SQL注入攻击吗?
- 13. sql函数不会通过php执行
- 14. 是否可以通过以下函数进行列表理解?
- 15. 你可以使用sql()函数进行表连接吗?
- 16. Vue可以通过依赖注入(DI)来导入组件吗?
- 17. 在这种情况下可以执行SQL注入吗?
- 18. 在Spring中通过注释向构造函数注入参数
- 19. 线程之间可以通过LINX通信进行通信吗?
- 20. 通过PHP Zend Framework进行YouTube注释
- 21. 我们可以通过WebServices在Netsuite中运行CSV导入吗?
- 22. 可以注入php,就像sql?
- 23. 我可以在f#中通过名称调用函数吗?
- 24. 可以通过在php中多次发布一个数组吗?
- 25. SQL注入是否可以通过类似复选框的输入来执行?
- 26. 通过函数指针使用的函数可以内联吗?
- 27. 在PHP类的构造函数中运行查询可以吗?
- 28. 可以通过perl中的http请求进行交易吗?
- 29. JADE可以在HTTP之下或通过HTTP进行工作吗?
- 30. Android可以通过NFC与Window Phone进行通信吗?
这可能是安全的。但这不是避免使用预备语句(PDO)的原因。 – 2012-01-02 21:10:35