diff --git a/java/ql/src/Security/CWE/CWE-089/SqlInjectionLib.qll b/java/ql/lib/semmle/code/java/security/SqlInjectionQuery.qll similarity index 76% rename from java/ql/src/Security/CWE/CWE-089/SqlInjectionLib.qll rename to java/ql/lib/semmle/code/java/security/SqlInjectionQuery.qll index febee9bcef9..edd43ab5c31 100644 --- a/java/ql/src/Security/CWE/CWE-089/SqlInjectionLib.qll +++ b/java/ql/lib/semmle/code/java/security/SqlInjectionQuery.qll @@ -1,10 +1,16 @@ -/** Definitions used by the queries for database query injection. */ +/** + * Provides taint tracking and dataflow configurations to be used in Sql injection queries. + * + * Do not import this from a library file, in order to reduce the risk of + * unintentionally bringing a TaintTracking::Configuration into scope in an unrelated + * query. + */ import java import semmle.code.java.dataflow.FlowSources import semmle.code.java.security.QueryInjection -private class QueryInjectionFlowConfig extends TaintTracking::Configuration { +class QueryInjectionFlowConfig extends TaintTracking::Configuration { QueryInjectionFlowConfig() { this = "SqlInjectionLib::QueryInjectionFlowConfig" } override predicate isSource(DataFlow::Node src) { src instanceof RemoteFlowSource } diff --git a/java/ql/src/Security/CWE/CWE-089/SqlTainted.ql b/java/ql/src/Security/CWE/CWE-089/SqlTainted.ql index 28b09d37dbb..50dfe9d725a 100644 --- a/java/ql/src/Security/CWE/CWE-089/SqlTainted.ql +++ b/java/ql/src/Security/CWE/CWE-089/SqlTainted.ql @@ -14,7 +14,7 @@ import java import semmle.code.java.dataflow.FlowSources -import SqlInjectionLib +import semmle.code.java.security.SqlInjectionQuery import DataFlow::PathGraph from QueryInjectionSink query, DataFlow::PathNode source, DataFlow::PathNode sink diff --git a/java/ql/src/Security/CWE/CWE-089/SqlTaintedLocal.ql b/java/ql/src/Security/CWE/CWE-089/SqlTaintedLocal.ql index df5807f3f5f..acd4f9d8df5 100644 --- a/java/ql/src/Security/CWE/CWE-089/SqlTaintedLocal.ql +++ b/java/ql/src/Security/CWE/CWE-089/SqlTaintedLocal.ql @@ -14,7 +14,7 @@ import semmle.code.java.Expr import semmle.code.java.dataflow.FlowSources -import SqlInjectionLib +import semmle.code.java.security.SqlInjectionQuery import DataFlow::PathGraph class LocalUserInputToQueryInjectionFlowConfig extends TaintTracking::Configuration { diff --git a/java/ql/src/Security/CWE/CWE-089/SqlUnescaped.ql b/java/ql/src/Security/CWE/CWE-089/SqlUnescaped.ql index e9e6cba3770..d73754e6202 100644 --- a/java/ql/src/Security/CWE/CWE-089/SqlUnescaped.ql +++ b/java/ql/src/Security/CWE/CWE-089/SqlUnescaped.ql @@ -14,7 +14,7 @@ import java import semmle.code.java.security.SqlUnescapedLib -import SqlInjectionLib +import semmle.code.java.security.SqlInjectionQuery class UncontrolledStringBuilderSource extends DataFlow::ExprNode { UncontrolledStringBuilderSource() {