-1

我们可以使用过滤器来避免来自 url 的 sql 注入吗?有开源过滤器吗?Spring是否也有这样的过滤器..

请回复我

4

3 回答 3

2

您实际上需要在 JDBC 中使用 prepareStatement() 来转义来自 URL 的查询,而不是应用某种“过滤器”。如果您使用带有 setParameter() 的 ORM 实现,则可以通过这种方式解决问题。

于 2013-06-19T15:20:00.607 回答
2

Sql 注入在编写准备好的语句的持久层(您可以使用 Hibernate、JPA、iBatis 等)中处理。确保使用Prepared 语句。

于 2013-06-19T15:20:42.177 回答
0

你真的需要一个多管齐下的方法。使用准备好的语句或绑定变量很重要,但有些人可能会出错并让滥用查询通过。您还应该配置数据库,以便人工和自动用户只拥有他们需要的权限。

您的典型用户不需要CREATE TABLEDROP TABLE特权,所以不要把这些给他。像这样的查找表US_STATES应该是只读的;除非发生灾难,否则不要给任何人INSERT,UPDATE或。DELETE如果伊利诺伊州斯普林菲尔德在地震中被摧毁并且国会大厦被移动,则暂时给予 dba UPDATE 权限。

还可以考虑为用户必须执行的任务编写存储过程。您可以授予程序自己的权限,并授予用户访问它们的权限。

于 2013-06-19T16:03:21.413 回答