Skip to content

Commit 4d4e9c4

Browse files
committed
Break up UI5LogInjection into query and library
This allows reuse of UI5LogInjection in UI5LogsToHttp.
1 parent 476a35d commit 4d4e9c4

2 files changed

Lines changed: 13 additions & 11 deletions

File tree

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import javascript
2+
import advanced_security.javascript.frameworks.ui5.dataflow.DataFlow
3+
import advanced_security.javascript.frameworks.ui5.dataflow.DataFlow::UI5PathGraph
4+
import semmle.javascript.security.dataflow.LogInjectionQuery as LogInjection
5+
6+
class UI5LogInjectionConfiguration extends LogInjection::LogInjectionConfiguration {
7+
override predicate isSource(DataFlow::Node node) { node instanceof RemoteFlowSource }
8+
9+
override predicate isSink(DataFlow::Node node) {
10+
node = ModelOutput::getASinkNode("ui5-log-injection").asSink()
11+
}
12+
}

javascript/frameworks/ui5/src/UI5LogInjection/UI5LogInjection.ql

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,7 @@
1212
*/
1313

1414
import javascript
15-
import advanced_security.javascript.frameworks.ui5.dataflow.DataFlow
16-
import advanced_security.javascript.frameworks.ui5.dataflow.DataFlow::UI5PathGraph
17-
import semmle.javascript.security.dataflow.LogInjectionQuery as LogInjection
18-
19-
class UI5LogInjectionConfiguration extends LogInjection::LogInjectionConfiguration {
20-
override predicate isSource(DataFlow::Node node) { node instanceof RemoteFlowSource }
21-
22-
override predicate isSink(DataFlow::Node node) {
23-
node = ModelOutput::getASinkNode("ui5-log-injection").asSink()
24-
}
25-
}
15+
import advanced_security.javascript.frameworks.ui5.UI5LogInjectionQuery
2616

2717
from
2818
UI5LogInjectionConfiguration cfg, UI5PathNode source, UI5PathNode sink, UI5PathNode primarySource

0 commit comments

Comments
 (0)