可以做些什么来阻止客户端的SQL注入?在学校,我了解到所有查询都应该参数化(PreparedStament,ExecuteQuery ......)但是这一切都在服务器端。
在客户端有什么可以做的吗?为什么?
答案 0 :(得分:2)
没有
客户端代码本质上是不安全的see this question。最终用户可以修改所有运行的内容(让我们假设浏览器)(毕竟他们已经获得了脚本/代码,他们可以根据自己的内容修改它们)。始终假设来自客户端的信息是恶意的。
我怀疑您考虑客户端代码的原因是因为您已经听说过客户端验证。这略有不同。广义而言:
这就是许多解决方案(例如.NET验证程序)在服务器和客户端上验证的原因。
正如@FreeAsInBeer在上面的评论中提到的,一些库可以允许您使用javascript连接到数据库(我自己从未使用过)。这方面的明显优势是您不需要服务器。同样,相同的原则适用 - 您向客户端代码访问数据库,这意味着您的恶意用户可以访问。小心你放在那里!