抵御SQL注入:评估数据转义策略的有效性
虽然参数化SQL查询被认为是清理用户输入的最佳方法,但一些开发者质疑基本输入清理技术的有效性,例如转义单引号和用单引号包围用户输入。
讨论中,一位开发者展示了他们用于输入清理的代码:
<code>sSanitizedInput = "'" & Replace(sInput, "'", "''") & "'"</code>
他们认为此方法通过阻止用户结束字符串并执行其他命令来消除SQL注入攻击的可能性。但是,一些专家警告不要使用这种方法,因为它存在固有的缺陷。
首先,基于黑名单的输入验证本质上是有问题的。更有效的方法是定义可接受的值和格式的白名单,以确保只处理有效输入。
关于此主题的研究论文,例如https://www.imperva.com/docs/WP_SQL_Injection_Protection_LK.pdf中的论文,提供了证据表明即使是引号转义也可以被绕过,进一步突出了基本输入清理技术的局限性。
推荐的SQL注入预防方法包括:
虽然转义单引号的技术表面上看起来足够,但它最终是不可靠的,应该用更强大和全面的安全策略来代替,以有效防止SQL注入攻击。
以上是在 SQL 查询中转义单引号是针对注入攻击的可靠保护吗?的详细内容。更多信息请关注PHP中文网其他相关文章!