2014-01-16 91 views
0

对特殊字符验证URL是否阻止sql注入?像这样的东西:通过url阻止sql注入

validateRequest(req.getUri()); 

其中我验证特殊字符。

+1

永远不会永远不会尝试编写自己的“特殊”字符自定义验证,以防止SQL注入攻击。 – Kevin

+2

SQL注入不会发生在URL中。它发生在数据库交互中。而且它与“特殊字符”无关,并且与将用户输入视为* data *而不是*可执行代码*相关。 – David

+0

谢谢凯文:) 大卫我知道,但我的意思是他的情况下,他写了一个完整的SQL语句内的url吗?\ – user3204111

回答

5

只要您使用parametrized queries针对数据库,您将从SQL注入中保存。因此,您应该通过命令参数将数据发送到数据库服务器,而不是验证URL中的字符。

+0

我问他是否写在网址中的完整的SQL语句不是通常的攻击添加例如: 或1 = 1 – user3204111

+0

@ user3204111,url的输入将如何传送到数据库服务器?它不能直接进行,必须有命令对象/代码从URL中取值,然后将其发送到数据库。您不能在URL中编写SQL查询,并期望它自动进入数据库,必须涉及某种类型的命令对象。 – Habib