如何在客户端防止Java / JSP中的SQL注入?

时间:2014-08-12 12:17:34

标签: sql sql-injection client-side server-side

可以做些什么来阻止客户端的SQL注入?在学校,我了解到所有查询都应该参数化(PreparedStament,ExecuteQuery ......)但是这一切都在服务器端。

在客户端有什么可以做的吗?为什么?

1 个答案:

答案 0 :(得分:2)

没有

客户端代码本质上是不安全的see this question。最终用户可以修改所有运行的内容(让我们假设浏览器)(毕竟他们已经获得了脚本/代码,他们可以根据自己的内容修改它们)。始终假设来自客户端的信息是恶意的。

我怀疑您考虑客户端代码的原因是因为您已经听说过客户端验证。这略有不同。广义而言:

  • 客户端验证可防止用户犯错(例如,错过了他们的姓名或不匹配的电子邮件地址)。用户可以颠覆它,它可以提供帮助。
  • 服务器验证是为了确保一切都有效且安全。它在服务器上运行,因此对客户端是安全的。

这就是许多解决方案(例如.NET验证程序)在服务器和客户端上验证的原因。

正如@FreeAsInBeer在上面的评论中提到的,一些库可以允许您使用javascript连接到数据库(我自己从未使用过)。这方面的明显优势是您不需要服务器。同样,相同的原则适用 - 您向客户端代码访问数据库,这意味着您的恶意用户可以访问。小心你放在那里!