表明SQL语句很危险

php*_*utt 6 php security sql-injection

我想在PHP中开发一个函数来检查SQL语句的危险程度.当我说危险时,我的意思是,某些符号,字符或字符串用于从数据库中获取用户看不到的数据.

例如:

SELECT*FROM users WHERE userId ='1'

可以通过几种方式注射.虽然我清理了params,但我也希望监控查询运行的安全性.

提前致谢

wum*_*ump 13

您正在尝试找到不应存在的问题的修复程序.您应该使用准备好的(预编译的)查询,然后您不必担心SQL注入和转义,因为查询本身是固定的,只有参数是可变的.

有关在PHP中使用它们的示例,请参阅此处:http://mattbango.com/notebook/web-development/prepared-statements-in-php-and-mysqli/

另一个优点是它也更快,至少对于MySQL来说,因为服务器不必每次都解析查询.

  • 如果每页加载不执行多次,则预准备语句会稍微慢一些.但是,准备好的陈述的优点远远超过了不使用它们所获得的微观优化. (2认同)