开发者社区> 问答> 正文

select id FROM test where 1=1 应该也要被 wallfIilter 拦截

select id FROM test where 1=1 应该也要被 wallfIilter 拦截,目前 select id FROM test where 1=1 or 1=1 可以拦截

原提问者GitHub用户tsgkim

展开
收起
山海行 2023-07-05 19:41:10 57 0
3 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    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,相当于不起任何限制。

    2023-07-30 15:40:06
    赞同 展开评论 打赏
  • Druid的WallFilter主要用于SQL防火墙功能,它可以对SQL语句进行安全检查和拦截,以防止SQL注入等安全问题。WallFilter通过解析SQL语句,分析其中的语义和结构,来判断是否存在潜在的安全风险。

    在您的例子中,"select id FROM test where 1=1" 这个SQL语句不涉及任何动态参数或外部输入,它只是一个简单的静态查询,不具备SQL注入的可能性。因此,即使启用了WallFilter,它通常不会被拦截。

    2023-07-11 09:41:01
    赞同 展开评论 打赏
  • where 1=1通常是程序员故意写的,1 = 1 or 1 = 1则很大概率是被注入,所以一个拦截,一个不拦截

    原回答者GitHub用户wenshao

    2023-07-06 11:04:43
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载