sql注入,编写了一个过滤器,但是用户输入内容如果包含特殊字符就通过不了,比如adasdoradsad,带有or关键字就不行,有没有什么好的办法

sql注入,编写了一个过滤器,但是用户输入内容如果包含特殊字符就通过不了,比如adasdoradsad,带有or关键字就不行,有没有什么好的办法

可以考虑使用参数化查询来防止SQL注入攻击,而不是手动编写过滤器。参数化查询是一种将用户输入的值作为参数传递给SQL语句的方法,而不是将用户输入的值直接拼接到SQL语句中。这样可以避免SQL注入攻击,因为用户输入的值不会被解释为SQL语句的一部分。

如果您仍然想使用过滤器来过滤用户输入,可以考虑使用正则表达式来匹配特殊字符,而不是简单地检查是否包含关键字。例如,您可以使用正则表达式来检查输入是否包含“or”关键字,但是还要确保它不是在单词中间出现的。这样可以避免误报。

通过dao层去防sql注入,而不是过滤器。
比如使用mybatis时使用#而不是$引用变量。