【问题标题】:Semgrep rule for a try/catch blocktry/catch 块的 Semgrep 规则
【发布时间】:2023-02-12 01:35:53
【问题描述】:

我最近尝试为 Java 代码创建一个 Semgrep 规则,该规则检测在 try/catch 块中发生的数据库连接是否完成了正确的回滚。

所以它需要做的是:

  • Connection 对象是在 try 之前或 try(...) 初始化语句中使用 getConnection(...) 创建的
  • catch 块包含对connection.rollback() 的调用

我如何在 semgrep 中编写这样一条规则,它与 try 之前和 catch 块中的模式相匹配?

【问题讨论】:

    标签: java database security static-analysis semgrep


    【解决方案1】:

    如果我对您的理解正确,这应该对您有用:

    rules:
      - id: detect-connection-rollback
        patterns:
        - pattern:
            try{$V = getConnection(...);...}  
            catch(Exception e){... $V.rollback(...);...}
        message: Match found
        languages:
          - java
        severity: WARNING
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-01
      • 1970-01-01
      相关资源
      最近更新 更多