1

进一步说明:

我使用自定义 PHP / MySQL 函数来执行我的查询(动态 MySQLi,而不是准备语句)。

如果我在我的函数中包含一个代码,用他们的 HTML 代码替换以下字符 \ < > ' " - ; ( ),在执行查询之前,是否有可能绕过这个安全措施?如果是这样,那么请,怎么解释?

此外,我对运行准备好的语句或任何其他类型的转义脚本或函数不感兴趣。此外,我最初会将输入字符串转换为 UTF-8。

PS:我知道这个问题有很多版本,有争议和争议,但我搜索并没有找到满意的答案。

预先感谢您的明智回答。

4

1 回答 1

0

黑名单是无效的,因为您可能会错过许多不同类型的编码和字符。查看Web Hackers Handbook了解其中的一些技术。

但是,即使我们忽略了编码,也有很多小的实现绊脚石。如果您只传递一次输入,则可以制作一个仍然会创建恶意输入的语句。

值得一提的是,您在帖子中遗漏了几个最重要的字符,例如“;” 和 ” - ”。

正确的方法是使用参数化查询

查看此问题以获取有关实施的更多详细信息。

于 2013-06-30T18:22:33.833 回答