我们可以使用过滤器来避免通过url进行sql注入吗?是否有开源过滤器? 是否有与Spring一样的过滤器..
请回复我
答案 0 :(得分:2)
您需要使用JDBC中的prepareStatement()实际转义通过URL的查询,而不是应用某种“过滤器”。如果您正在使用带有setParameter()的ORM实现,则可以解决此问题。
答案 1 :(得分:2)
在编写预处理语句的持久层(可以使用Hibernate,JPA,iBatis等)中处理Sql注入。请务必使用Prepared statement.
答案 2 :(得分:0)
你真的需要一种多管齐下的方法。使用预准备语句或绑定变量很重要,但有些人可能会犯错,并通过滥用查询。您还应该配置数据库,以便人员和自动用户只拥有他们需要的权限。
您的典型用户不需要CREATE TABLE
或DROP TABLE
权限,因此请勿将这些权限提供给他。像US_STATES
这样的查找表应该是只读的;除非发生灾难,否则不会对这些内容INSERT
,UPDATE
或DELETE
提供任何内容。如果伊利诺伊州斯普林菲尔德在地震中被摧毁并且国会大厦被移动,那么暂时给予dba UPDATE特权。
还要考虑为用户必须执行的任务编写存储过程。您可以为这些程序提供自己的权限,并为用户提供几乎所有权限。