Skip to content

Commit dde7e9e

Browse files
committed
add test for jquery plugin parameters in js/html-constructed-from-input
1 parent 0912996 commit dde7e9e

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

javascript/ql/test/query-tests/Security/CWE-079/UnsafeHtmlConstruction/UnsafeHtmlConstruction.expected

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
11
nodes
2+
| jquery-plugin.js:11:34:11:40 | options |
3+
| jquery-plugin.js:11:34:11:40 | options |
4+
| jquery-plugin.js:12:31:12:37 | options |
5+
| jquery-plugin.js:12:31:12:41 | options.foo |
6+
| jquery-plugin.js:12:31:12:41 | options.foo |
27
| main.js:1:55:1:55 | s |
38
| main.js:1:55:1:55 | s |
49
| main.js:2:29:2:29 | s |
@@ -53,6 +58,10 @@ nodes
5358
| typed.ts:17:29:17:29 | s |
5459
| typed.ts:17:29:17:29 | s |
5560
edges
61+
| jquery-plugin.js:11:34:11:40 | options | jquery-plugin.js:12:31:12:37 | options |
62+
| jquery-plugin.js:11:34:11:40 | options | jquery-plugin.js:12:31:12:37 | options |
63+
| jquery-plugin.js:12:31:12:37 | options | jquery-plugin.js:12:31:12:41 | options.foo |
64+
| jquery-plugin.js:12:31:12:37 | options | jquery-plugin.js:12:31:12:41 | options.foo |
5665
| main.js:1:55:1:55 | s | main.js:2:29:2:29 | s |
5766
| main.js:1:55:1:55 | s | main.js:2:29:2:29 | s |
5867
| main.js:1:55:1:55 | s | main.js:2:29:2:29 | s |
@@ -105,6 +114,7 @@ edges
105114
| typed.ts:16:11:16:21 | s | typed.ts:17:29:17:29 | s |
106115
| typed.ts:16:15:16:21 | id("x") | typed.ts:16:11:16:21 | s |
107116
#select
117+
| jquery-plugin.js:12:31:12:41 | options.foo | jquery-plugin.js:11:34:11:40 | options | jquery-plugin.js:12:31:12:41 | options.foo | $@ based on $@ might later cause $@. | jquery-plugin.js:12:31:12:41 | options.foo | HTML construction | jquery-plugin.js:11:34:11:40 | options | library input | jquery-plugin.js:12:20:12:53 | "<span> ... /span>" | cross-site scripting |
108118
| main.js:2:29:2:29 | s | main.js:1:55:1:55 | s | main.js:2:29:2:29 | s | $@ based on $@ might later cause $@. | main.js:2:29:2:29 | s | HTML construction | main.js:1:55:1:55 | s | library input | main.js:3:49:3:52 | html | cross-site scripting |
109119
| main.js:7:49:7:49 | s | main.js:6:49:6:49 | s | main.js:7:49:7:49 | s | $@ based on $@ might later cause $@. | main.js:7:49:7:49 | s | XML parsing | main.js:6:49:6:49 | s | library input | main.js:8:48:8:66 | doc.documentElement | cross-site scripting |
110120
| main.js:12:49:12:49 | s | main.js:11:60:11:60 | s | main.js:12:49:12:49 | s | $@ based on $@ might later cause $@. | main.js:12:49:12:49 | s | XML parsing | main.js:11:60:11:60 | s | library input | main.js:16:21:16:35 | xml.cloneNode() | cross-site scripting |

javascript/ql/test/query-tests/Security/CWE-079/UnsafeHtmlConstruction/jquery-plugin.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,9 @@
77
}(function ($) {
88
$("<span>" + $.trim("foo") + "</span>"); // OK
99
}));
10+
11+
$.fn.myPlugin = function (stuff, options) {
12+
$("#foo").html("<span>" + options.foo + "</span>"); // NOT OK
13+
14+
$("#foo").html("<span>" + stuff + "</span>"); // NOT OK - but not found [INCONSISTENCY]
15+
}

0 commit comments

Comments
 (0)