php - SQL 语句危险的标志

标签 php security sql-injection

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

例如:

SELECT * FROM users WHERE userId = '1'

可以通过多种方式注入(inject)。虽然我清理了参数,但我还想监控查询运行的安全性。

提前致谢

最佳答案

您正在尝试为不应该存在的问题找到解决方案。您应该使用准备好的(预编译的)查询,这样您就不必担心 SQL 注入(inject)和转义,因为查询本身是固定的,只有参数是可变的。

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

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

关于php - SQL 语句危险的标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2792084/

相关文章:

php - 使用查询生成器的 Laravel 5 分页

php - 我需要在 mysql 中发布图像的静态路径

security - Azure Blob 存储在 Microsoft 中时是否已加密?

java - 如何向 Java Web 应用程序添加 Windows 安全对话框

php - 用于数据库插入的最安全的现代过滤器?

mysql - 更改表名以避免 SQL 注入(inject)攻击

PHP fatal error : I'm trying to implement a Form\AbstractType in my Symfony2 application

php - 如何在 html 中用双百分号(%%variable%%)括起来的 PHP 变量使用

security - 我仍然认为在客户端散列密码更好。我错了吗?

sql-injection - 在模型中使用 sql 时如何防止 Phalcon PHP 中的 SQL 注入(inject)?