我正在将一些简单的用户数据传递到 mysql 数据库中。
PHP 的 urlencode() 返回一个字符串,其中包含除 -_ 之外的所有非字母数字字符。已替换为百分号 (%) 后跟两个十六进制数字。
我不担心空格变成加号,或其他格式问题。
我也不担心 XSS 和其他 HTML 黑客攻击。
我相信我应该免受 ' 和 ) 式的攻击。
问题:是否还有其他类型的 sql 攻击可以与 - 或 _ 或 一起使用。 ?
EXAMPLE:
mysql_query("UPDATE cars SET color = '".urlencode($c)."' WHERE garage = 29");
先感谢您
urlencode()
has 没事做与 SQL 一起使用,因此它在防止 SQL 注入方面的作用就像煤油一样,可以让您的汉堡变得更美味。此外,进入数据库的所有内容最终都会进行 URL 编码,如果您想在检索数据库后对它们进行任何有用的操作,则必须对其进行解码。
另一方面,转义查询可以帮助您的应用程序防范 SQL 注入,仅此而已。它不是修改数据您输入您的查询;它只是保护您的查询免遭篡改。这就是 SQL 注入的思想,也是为什么对数据进行 URL 编码并不能采取任何措施来防范 SQL 注入的原因。诚然,它does转动你的撇号'
into %27
,使它们无害,但正如上一段所述,您必须将它们 URL 解码回撇号才能使用它们。
使用正确的工具达到正确的目的。特别是在 2011 年,您应该使用准备好的语句,而不是手动转义查询变量并连接字符串以形成查询。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)