select id FROM test where 1=1 应该也要被 wallfIilter 拦截,目前 select id FROM test where 1=1 or 1=1 可以拦截
原提问者GitHub用户tsgkim
elect id FROM test where 1=1 这条SQL本身没有问题,不应该被sql注入防护工具(如WAF)拦截。
其中:
where 1=1 是一个非常常见的SQL写法,用于构造动态SQL。
所以你的where 1=1 条件不应该被拦截,可能出现这种情况的原因是:
WAF存在漏洞,误拦截合法SQL。
报错信息有误,实际上不是where 1=1导致的。
WAF配置不当,不合理地拦截where 1=1。
1=1 的条件永远为true,相当于不起任何限制。
Druid的WallFilter主要用于SQL防火墙功能,它可以对SQL语句进行安全检查和拦截,以防止SQL注入等安全问题。WallFilter通过解析SQL语句,分析其中的语义和结构,来判断是否存在潜在的安全风险。
在您的例子中,"select id FROM test where 1=1" 这个SQL语句不涉及任何动态参数或外部输入,它只是一个简单的静态查询,不具备SQL注入的可能性。因此,即使启用了WallFilter,它通常不会被拦截。
where 1=1通常是程序员故意写的,1 = 1 or 1 = 1则很大概率是被注入,所以一个拦截,一个不拦截
原回答者GitHub用户wenshao
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。