Skip to content

Commit 88177ca

Browse files
Jami CogswellJami Cogswell
authored andcommitted
Move BrowserInjectionFieldQuery's dataflow config to qll file to resolve compiler warning about unused isAdditionalLoadStep
1 parent 8de792a commit 88177ca

File tree

2 files changed

+48
-48
lines changed

2 files changed

+48
-48
lines changed
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
import javascript
2+
private import browserextension.BrowserInjectionFieldCustomizations::BrowserInjection
3+
private import semmle.javascript.security.dataflow.XssThroughDomCustomizations::XssThroughDom as XssThroughDom
4+
5+
//private import semmle.javascript.security.dataflow.DomBasedXssCustomizations
6+
//private import semmle.javascript.security.dataflow.XssThroughDomCustomizations::XssThroughDom as XssThroughDom
7+
8+
//private import semmle.javascript.security.dataflow.CodeInjectionCustomizations
9+
10+
module Config implements DataFlow::ConfigSig {
11+
12+
predicate isSource(DataFlow::Node source) {
13+
source instanceof Source
14+
}
15+
16+
predicate isSink(DataFlow::Node sink) {
17+
sink instanceof Sink
18+
}
19+
20+
additional predicate isAdditionalLoadStep(DataFlow::Node pred, DataFlow::Node succ, string prop) {
21+
(pred = succ) and
22+
((pred instanceof Update and prop = ["url", "openerTabId"])
23+
or
24+
(pred instanceof DownloadsDangerous and prop = ["body", "conflictAction","filename", "url", "method"])
25+
or
26+
(pred instanceof Delete and prop = ["startTime", "endTime", "url"])
27+
//or
28+
//(pred instanceof SetContentSettings and succ instanceof SetContentSettings and prop = any(string s))
29+
//or
30+
//(pred instanceof GetContentSettings and succ instanceof GetContentSettings and prop = any(string s))
31+
//(pred instanceof StorageSet and succ instanceof StorageSet and prop = any(string s))
32+
//or
33+
//(pred instanceof SearchHistory and prop = any(string s))
34+
or
35+
(pred instanceof GetCookie and prop = ["domain", "firstPartyDomain", "name", "url", "session", "path", "storeId"])
36+
or
37+
(pred instanceof UpdateBookmarks and prop= ["title", "url"])
38+
or
39+
(pred = succ and pred instanceof RemoveBrowsingData and prop = ["cookieStoreId", "hostnames", "originTypes", "since"])
40+
or
41+
(pred = succ and pred instanceof AddHistory and prop = ["url"])
42+
or
43+
(pred = succ and pred instanceof CreateWindows and prop = ["url"]))
44+
}
45+
}
46+
47+
module ConfigFlow = TaintTracking::Global<Config>;

javascript/src/audit/browserAPI/BrowserInjectionFieldQuery.ql

Lines changed: 1 addition & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -12,54 +12,7 @@
1212

1313
import javascript
1414
import ConfigFlow::PathGraph
15-
import DataFlow
16-
import browserextension.BrowserInjectionFieldCustomizations::BrowserInjection
17-
private import semmle.javascript.security.dataflow.XssThroughDomCustomizations::XssThroughDom as XssThroughDom
18-
19-
//private import semmle.javascript.security.dataflow.DomBasedXssCustomizations
20-
//private import semmle.javascript.security.dataflow.XssThroughDomCustomizations::XssThroughDom as XssThroughDom
21-
22-
//private import semmle.javascript.security.dataflow.CodeInjectionCustomizations
23-
24-
module Config implements DataFlow::ConfigSig {
25-
26-
predicate isSource(DataFlow::Node source) {
27-
source instanceof Source
28-
}
29-
30-
predicate isSink(DataFlow::Node sink) {
31-
sink instanceof Sink
32-
}
33-
34-
additional predicate isAdditionalLoadStep(DataFlow::Node pred, DataFlow::Node succ, string prop) {
35-
(pred = succ) and
36-
((pred instanceof Update and prop = ["url", "openerTabId"])
37-
or
38-
(pred instanceof DownloadsDangerous and prop = ["body", "conflictAction","filename", "url", "method"])
39-
or
40-
(pred instanceof Delete and prop = ["startTime", "endTime", "url"])
41-
//or
42-
//(pred instanceof SetContentSettings and succ instanceof SetContentSettings and prop = any(string s))
43-
//or
44-
//(pred instanceof GetContentSettings and succ instanceof GetContentSettings and prop = any(string s))
45-
//(pred instanceof StorageSet and succ instanceof StorageSet and prop = any(string s))
46-
//or
47-
//(pred instanceof SearchHistory and prop = any(string s))
48-
or
49-
(pred instanceof GetCookie and prop = ["domain", "firstPartyDomain", "name", "url", "session", "path", "storeId"])
50-
or
51-
(pred instanceof UpdateBookmarks and prop= ["title", "url"])
52-
or
53-
(pred = succ and pred instanceof RemoveBrowsingData and prop = ["cookieStoreId", "hostnames", "originTypes", "since"])
54-
or
55-
(pred = succ and pred instanceof AddHistory and prop = ["url"])
56-
or
57-
(pred = succ and pred instanceof CreateWindows and prop = ["url"]))
58-
}
59-
}
60-
61-
module ConfigFlow = TaintTracking::Global<Config>;
62-
15+
import browserextension.BrowserInjectionFieldQuery
6316

6417
from ConfigFlow::PathNode source, ConfigFlow::PathNode sink
6518
where ConfigFlow::flowPath(source, sink)

0 commit comments

Comments
 (0)