mirror of
https://github.com/github/codeql.git
synced 2026-05-04 05:05:12 +02:00
add a sanitizer guard for safe attribute string concatenations
This commit is contained in:
@@ -53,6 +53,11 @@ nodes
|
||||
| stored-xss.js:5:20:5:52 | session ... ssion') |
|
||||
| stored-xss.js:8:20:8:48 | localSt ... local') |
|
||||
| stored-xss.js:8:20:8:48 | localSt ... local') |
|
||||
| stored-xss.js:10:9:10:44 | href |
|
||||
| stored-xss.js:10:16:10:44 | localSt ... local') |
|
||||
| stored-xss.js:12:20:12:54 | "<a hre ... ar</a>" |
|
||||
| stored-xss.js:12:20:12:54 | "<a hre ... ar</a>" |
|
||||
| stored-xss.js:12:35:12:38 | href |
|
||||
| string-manipulations.js:3:16:3:32 | document.location |
|
||||
| string-manipulations.js:3:16:3:32 | document.location |
|
||||
| string-manipulations.js:3:16:3:32 | document.location |
|
||||
@@ -431,6 +436,11 @@ edges
|
||||
| stored-xss.js:3:35:3:51 | document.location | stored-xss.js:3:35:3:58 | documen ... .search |
|
||||
| stored-xss.js:3:35:3:58 | documen ... .search | stored-xss.js:8:20:8:48 | localSt ... local') |
|
||||
| stored-xss.js:3:35:3:58 | documen ... .search | stored-xss.js:8:20:8:48 | localSt ... local') |
|
||||
| stored-xss.js:3:35:3:58 | documen ... .search | stored-xss.js:10:16:10:44 | localSt ... local') |
|
||||
| stored-xss.js:10:9:10:44 | href | stored-xss.js:12:35:12:38 | href |
|
||||
| stored-xss.js:10:16:10:44 | localSt ... local') | stored-xss.js:10:9:10:44 | href |
|
||||
| stored-xss.js:12:35:12:38 | href | stored-xss.js:12:20:12:54 | "<a hre ... ar</a>" |
|
||||
| stored-xss.js:12:35:12:38 | href | stored-xss.js:12:20:12:54 | "<a hre ... ar</a>" |
|
||||
| string-manipulations.js:3:16:3:32 | document.location | string-manipulations.js:3:16:3:32 | document.location |
|
||||
| string-manipulations.js:4:16:4:32 | document.location | string-manipulations.js:4:16:4:37 | documen ... on.href |
|
||||
| string-manipulations.js:4:16:4:32 | document.location | string-manipulations.js:4:16:4:37 | documen ... on.href |
|
||||
@@ -732,6 +742,7 @@ edges
|
||||
| react-native.js:9:27:9:33 | tainted | react-native.js:7:17:7:33 | req.param("code") | react-native.js:9:27:9:33 | tainted | Cross-site scripting vulnerability due to $@. | react-native.js:7:17:7:33 | req.param("code") | user-provided value |
|
||||
| stored-xss.js:5:20:5:52 | session ... ssion') | stored-xss.js:2:39:2:55 | document.location | stored-xss.js:5:20:5:52 | session ... ssion') | Cross-site scripting vulnerability due to $@. | stored-xss.js:2:39:2:55 | document.location | user-provided value |
|
||||
| stored-xss.js:8:20:8:48 | localSt ... local') | stored-xss.js:3:35:3:51 | document.location | stored-xss.js:8:20:8:48 | localSt ... local') | Cross-site scripting vulnerability due to $@. | stored-xss.js:3:35:3:51 | document.location | user-provided value |
|
||||
| stored-xss.js:12:20:12:54 | "<a hre ... ar</a>" | stored-xss.js:3:35:3:51 | document.location | stored-xss.js:12:20:12:54 | "<a hre ... ar</a>" | Cross-site scripting vulnerability due to $@. | stored-xss.js:3:35:3:51 | document.location | user-provided value |
|
||||
| string-manipulations.js:3:16:3:32 | document.location | string-manipulations.js:3:16:3:32 | document.location | string-manipulations.js:3:16:3:32 | document.location | Cross-site scripting vulnerability due to $@. | string-manipulations.js:3:16:3:32 | document.location | user-provided value |
|
||||
| string-manipulations.js:4:16:4:37 | documen ... on.href | string-manipulations.js:4:16:4:32 | document.location | string-manipulations.js:4:16:4:37 | documen ... on.href | Cross-site scripting vulnerability due to $@. | string-manipulations.js:4:16:4:32 | document.location | user-provided value |
|
||||
| string-manipulations.js:5:16:5:47 | documen ... lueOf() | string-manipulations.js:5:16:5:32 | document.location | string-manipulations.js:5:16:5:47 | documen ... lueOf() | Cross-site scripting vulnerability due to $@. | string-manipulations.js:5:16:5:32 | document.location | user-provided value |
|
||||
|
||||
@@ -53,6 +53,11 @@ nodes
|
||||
| stored-xss.js:5:20:5:52 | session ... ssion') |
|
||||
| stored-xss.js:8:20:8:48 | localSt ... local') |
|
||||
| stored-xss.js:8:20:8:48 | localSt ... local') |
|
||||
| stored-xss.js:10:9:10:44 | href |
|
||||
| stored-xss.js:10:16:10:44 | localSt ... local') |
|
||||
| stored-xss.js:12:20:12:54 | "<a hre ... ar</a>" |
|
||||
| stored-xss.js:12:20:12:54 | "<a hre ... ar</a>" |
|
||||
| stored-xss.js:12:35:12:38 | href |
|
||||
| string-manipulations.js:3:16:3:32 | document.location |
|
||||
| string-manipulations.js:3:16:3:32 | document.location |
|
||||
| string-manipulations.js:3:16:3:32 | document.location |
|
||||
@@ -435,6 +440,11 @@ edges
|
||||
| stored-xss.js:3:35:3:51 | document.location | stored-xss.js:3:35:3:58 | documen ... .search |
|
||||
| stored-xss.js:3:35:3:58 | documen ... .search | stored-xss.js:8:20:8:48 | localSt ... local') |
|
||||
| stored-xss.js:3:35:3:58 | documen ... .search | stored-xss.js:8:20:8:48 | localSt ... local') |
|
||||
| stored-xss.js:3:35:3:58 | documen ... .search | stored-xss.js:10:16:10:44 | localSt ... local') |
|
||||
| stored-xss.js:10:9:10:44 | href | stored-xss.js:12:35:12:38 | href |
|
||||
| stored-xss.js:10:16:10:44 | localSt ... local') | stored-xss.js:10:9:10:44 | href |
|
||||
| stored-xss.js:12:35:12:38 | href | stored-xss.js:12:20:12:54 | "<a hre ... ar</a>" |
|
||||
| stored-xss.js:12:35:12:38 | href | stored-xss.js:12:20:12:54 | "<a hre ... ar</a>" |
|
||||
| string-manipulations.js:3:16:3:32 | document.location | string-manipulations.js:3:16:3:32 | document.location |
|
||||
| string-manipulations.js:4:16:4:32 | document.location | string-manipulations.js:4:16:4:37 | documen ... on.href |
|
||||
| string-manipulations.js:4:16:4:32 | document.location | string-manipulations.js:4:16:4:37 | documen ... on.href |
|
||||
|
||||
@@ -6,4 +6,25 @@
|
||||
$('myId').html(localStorage.getItem('session')); // OK
|
||||
$('myId').html(sessionStorage.getItem('local')); // OK
|
||||
$('myId').html(localStorage.getItem('local')); // NOT OK
|
||||
|
||||
var href = localStorage.getItem('local');
|
||||
|
||||
$('myId').html("<a href=\"" + href + ">foobar</a>"); // NOT OK
|
||||
|
||||
if (href.indexOf("\"") !== -1) {
|
||||
return;
|
||||
}
|
||||
$('myId').html("<a href=\"" + href + "/>"); // OK
|
||||
|
||||
var href2 = localStorage.getItem('local');
|
||||
if (href2.indexOf("\"") !== -1) {
|
||||
return;
|
||||
}
|
||||
$('myId').html("\n<a href=\"" + href2 + ">foobar</a>"); // OK
|
||||
|
||||
var href3 = localStorage.getItem('local');
|
||||
if (href3.indexOf("\"") !== -1) {
|
||||
return;
|
||||
}
|
||||
$('myId').html('\r\n<a href="/' + href3 + '">' + "something" + '</a>'); // OK
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user