Skip to content

Commit 693c77f

Browse files
committed
add test for string replacement chains of URL schemes
1 parent 235aa9c commit 693c77f

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

javascript/ql/test/query-tests/Security/CWE-020/IncompleteUrlSchemeCheck.expected

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,5 @@
1111
| IncompleteUrlSchemeCheck.js:87:7:87:40 | /^(java ... scheme) | This check does not consider vbscript:. |
1212
| IncompleteUrlSchemeCheck.js:94:10:94:15 | scheme | This check does not consider vbscript:. |
1313
| IncompleteUrlSchemeCheck.js:104:6:104:39 | /^(java ... scheme) | This check does not consider vbscript:. |
14+
| IncompleteUrlSchemeCheck.js:110:12:112:29 | url // ... :/, "") | This check does not consider vbscript:. |
15+
| IncompleteUrlSchemeCheck.js:124:11:124:34 | url.rep ... :/, "") | This check does not consider vbscript:. |

javascript/ql/test/query-tests/Security/CWE-020/IncompleteUrlSchemeCheck.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,3 +105,26 @@ function test14(url) {
105105
return "about:blank";
106106
return url;
107107
}
108+
109+
function chain1(url) {
110+
return url // NOT OK
111+
.replace(/javascript:/, "")
112+
.replace(/data:/, "");
113+
}
114+
115+
function chain2(url) {
116+
return url // OK
117+
.replace(/javascript:/, "")
118+
.replace(/data:/, "")
119+
.replace(/vbscript:/, "");
120+
}
121+
122+
function chain3(url) {
123+
url = url.replace(/javascript:/, "")
124+
url = url.replace(/data:/, ""); // NOT OK
125+
return url;
126+
}
127+
128+
function chain4(url) {
129+
return url.replace(/(javascript|data):/, ""); // NOT OK - but not flagged [INCONSISTENCY]
130+
}

0 commit comments

Comments
 (0)