我想要一种简单的方法来验证在通过PHP使用MySQL数据库时SQL注入的可能性(即确保$ _POST中的用户提供的名称不包含sql子查询)。
我正在寻找的并不一定是工业实力或坚不可摧(尽管不可否认) - 它或多或少是个人项目自学的东西。
那么,有没有一种标准的,有点简单的方法在PHP中执行此操作? (我假设必须有)。我知道我可以运行一堆手工制作的正则表达式来检查PHP提供的字符串中的SQL,但我不相信这是最好的方法!
答案 0 :(得分:4)
使用准备好的查询与PDO。阅读关于它们的php.net文档。
答案 1 :(得分:0)
几项测试规则:
is_numeric()
是否需要数字(或is_string()
,is_array()
,is_object()
等等。)mysql_real_escape_string()
。答案 2 :(得分:-1)
答案 3 :(得分:-1)
确保$ _POST中的用户提供的名称不包含sql子查询
这是绝对错误的做法。
验证的整个想法几乎没有意义。
用于保存任何数据的数据库,没有任何限制。为什么限制自己?
那么,在PHP中是否有一种标准的,有点简单的方法呢?
当然。
但仅限于创建查询,而不是在验证输入方面 所以,这里有一套非常简单的规则
只要所有可变部分都通过
进入查询可以确定无法注射。