我将一些简单的用户数据传递到mysql数据库中.
PHP的urlencode()返回一个字符串,其中除-_之外的所有非字母数字字符.已被替换为百分号(%),后跟两个十六进制数字.
我并不担心空间会变成加号或其他格式问题.我也不担心XSS和其他HTML黑客攻击.
我相信我应该避免'和'风格攻击.
问题:是否有其他类型的sql攻击可以与 - 或_或.一起使用.?
例:
mysql_query("UPDATE cars SET color = '".urlencode($c)."' WHERE garage = 29");
Run Code Online (Sandbox Code Playgroud)
先感谢您
Bol*_*ock 11
urlencode()有没有做与SQL,所以它尽可能防止SQL注入煤油确实让你的汉堡更美味.此外,进入数据库的所有内容都将以URL编码结束,如果您想在检索数据库后对它们执行任何有用的操作,则必须对其进行解码.
另一方面,转义查询可以帮助您的应用程序防止SQL注入,仅此而已.它不会修改您在查询中输入的数据 ; 它只会保护您的查询不被篡改.这就是SQL注入的想法,这也是为什么URL编码数据没有做任何事情来防止它.当然,它确实将你的撇号'变成了%27,使它们无害,但正如上段所述,你必须将它们URL解码回撇号才能使用它们.
使用正确的工具以达到正确的目的.特别是在2011年,您应该使用预准备语句,而不是手动转义查询变量并连接字符串以形成查询.
小智 9
不.使用url编码进行SQL注入保护实际上很危险.
我认为urlencode仅凭这一点不足以阻止 sql 注入。您必须至少使用mysql_real_escape_string或prepared statements from PDO.。
| 归档时间: |
|
| 查看次数: |
5409 次 |
| 最近记录: |