mirror of
https://github.com/github/codeql.git
synced 2026-04-30 19:26:02 +02:00
JS: Add tests
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
import javascript
|
||||
import semmle.javascript.security.dataflow.UnsafeDeserializationQuery
|
||||
import testUtilities.ConsistencyChecking
|
||||
@@ -1,23 +1,43 @@
|
||||
nodes
|
||||
| tst.js:7:22:7:36 | req.params.data |
|
||||
| tst.js:7:22:7:36 | req.params.data |
|
||||
| tst.js:7:22:7:36 | req.params.data |
|
||||
| tst.js:8:25:8:39 | req.params.data |
|
||||
| tst.js:8:25:8:39 | req.params.data |
|
||||
| tst.js:8:25:8:39 | req.params.data |
|
||||
| tst.js:12:26:12:40 | req.params.data |
|
||||
| tst.js:12:26:12:40 | req.params.data |
|
||||
| tst.js:12:26:12:40 | req.params.data |
|
||||
| tst.js:13:29:13:43 | req.params.data |
|
||||
| tst.js:13:29:13:43 | req.params.data |
|
||||
| tst.js:13:29:13:43 | req.params.data |
|
||||
| tst.js:13:22:13:36 | req.params.data |
|
||||
| tst.js:13:22:13:36 | req.params.data |
|
||||
| tst.js:13:22:13:36 | req.params.data |
|
||||
| tst.js:14:25:14:39 | req.params.data |
|
||||
| tst.js:14:25:14:39 | req.params.data |
|
||||
| tst.js:14:25:14:39 | req.params.data |
|
||||
| tst.js:15:26:15:40 | req.params.data |
|
||||
| tst.js:15:26:15:40 | req.params.data |
|
||||
| tst.js:15:26:15:40 | req.params.data |
|
||||
| tst.js:16:29:16:43 | req.params.data |
|
||||
| tst.js:16:29:16:43 | req.params.data |
|
||||
| tst.js:16:29:16:43 | req.params.data |
|
||||
| tst.js:20:22:20:36 | req.params.data |
|
||||
| tst.js:20:22:20:36 | req.params.data |
|
||||
| tst.js:20:22:20:36 | req.params.data |
|
||||
| tst.js:21:22:21:36 | req.params.data |
|
||||
| tst.js:21:22:21:36 | req.params.data |
|
||||
| tst.js:21:22:21:36 | req.params.data |
|
||||
| tst.js:24:22:24:36 | req.params.data |
|
||||
| tst.js:24:22:24:36 | req.params.data |
|
||||
| tst.js:24:22:24:36 | req.params.data |
|
||||
| tst.js:25:22:25:36 | req.params.data |
|
||||
| tst.js:25:22:25:36 | req.params.data |
|
||||
| tst.js:25:22:25:36 | req.params.data |
|
||||
edges
|
||||
| tst.js:7:22:7:36 | req.params.data | tst.js:7:22:7:36 | req.params.data |
|
||||
| tst.js:8:25:8:39 | req.params.data | tst.js:8:25:8:39 | req.params.data |
|
||||
| tst.js:12:26:12:40 | req.params.data | tst.js:12:26:12:40 | req.params.data |
|
||||
| tst.js:13:29:13:43 | req.params.data | tst.js:13:29:13:43 | req.params.data |
|
||||
| tst.js:13:22:13:36 | req.params.data | tst.js:13:22:13:36 | req.params.data |
|
||||
| tst.js:14:25:14:39 | req.params.data | tst.js:14:25:14:39 | req.params.data |
|
||||
| tst.js:15:26:15:40 | req.params.data | tst.js:15:26:15:40 | req.params.data |
|
||||
| tst.js:16:29:16:43 | req.params.data | tst.js:16:29:16:43 | req.params.data |
|
||||
| tst.js:20:22:20:36 | req.params.data | tst.js:20:22:20:36 | req.params.data |
|
||||
| tst.js:21:22:21:36 | req.params.data | tst.js:21:22:21:36 | req.params.data |
|
||||
| tst.js:24:22:24:36 | req.params.data | tst.js:24:22:24:36 | req.params.data |
|
||||
| tst.js:25:22:25:36 | req.params.data | tst.js:25:22:25:36 | req.params.data |
|
||||
#select
|
||||
| tst.js:7:22:7:36 | req.params.data | tst.js:7:22:7:36 | req.params.data | tst.js:7:22:7:36 | req.params.data | Unsafe deserialization depends on a $@. | tst.js:7:22:7:36 | req.params.data | user-provided value |
|
||||
| tst.js:8:25:8:39 | req.params.data | tst.js:8:25:8:39 | req.params.data | tst.js:8:25:8:39 | req.params.data | Unsafe deserialization depends on a $@. | tst.js:8:25:8:39 | req.params.data | user-provided value |
|
||||
| tst.js:12:26:12:40 | req.params.data | tst.js:12:26:12:40 | req.params.data | tst.js:12:26:12:40 | req.params.data | Unsafe deserialization depends on a $@. | tst.js:12:26:12:40 | req.params.data | user-provided value |
|
||||
| tst.js:13:29:13:43 | req.params.data | tst.js:13:29:13:43 | req.params.data | tst.js:13:29:13:43 | req.params.data | Unsafe deserialization depends on a $@. | tst.js:13:29:13:43 | req.params.data | user-provided value |
|
||||
| tst.js:13:22:13:36 | req.params.data | tst.js:13:22:13:36 | req.params.data | tst.js:13:22:13:36 | req.params.data | Unsafe deserialization depends on a $@. | tst.js:13:22:13:36 | req.params.data | user-provided value |
|
||||
| tst.js:14:25:14:39 | req.params.data | tst.js:14:25:14:39 | req.params.data | tst.js:14:25:14:39 | req.params.data | Unsafe deserialization depends on a $@. | tst.js:14:25:14:39 | req.params.data | user-provided value |
|
||||
| tst.js:15:26:15:40 | req.params.data | tst.js:15:26:15:40 | req.params.data | tst.js:15:26:15:40 | req.params.data | Unsafe deserialization depends on a $@. | tst.js:15:26:15:40 | req.params.data | user-provided value |
|
||||
| tst.js:16:29:16:43 | req.params.data | tst.js:16:29:16:43 | req.params.data | tst.js:16:29:16:43 | req.params.data | Unsafe deserialization depends on a $@. | tst.js:16:29:16:43 | req.params.data | user-provided value |
|
||||
| tst.js:20:22:20:36 | req.params.data | tst.js:20:22:20:36 | req.params.data | tst.js:20:22:20:36 | req.params.data | Unsafe deserialization depends on a $@. | tst.js:20:22:20:36 | req.params.data | user-provided value |
|
||||
| tst.js:21:22:21:36 | req.params.data | tst.js:21:22:21:36 | req.params.data | tst.js:21:22:21:36 | req.params.data | Unsafe deserialization depends on a $@. | tst.js:21:22:21:36 | req.params.data | user-provided value |
|
||||
| tst.js:24:22:24:36 | req.params.data | tst.js:24:22:24:36 | req.params.data | tst.js:24:22:24:36 | req.params.data | Unsafe deserialization depends on a $@. | tst.js:24:22:24:36 | req.params.data | user-provided value |
|
||||
| tst.js:25:22:25:36 | req.params.data | tst.js:25:22:25:36 | req.params.data | tst.js:25:22:25:36 | req.params.data | Unsafe deserialization depends on a $@. | tst.js:25:22:25:36 | req.params.data | user-provided value |
|
||||
|
||||
@@ -4,11 +4,24 @@ var express = require('express');
|
||||
var app = express();
|
||||
app.post('/store/:id', function(req, res) {
|
||||
let data;
|
||||
data = jsyaml.load(req.params.data); // NOT OK
|
||||
data = jsyaml.loadAll(req.params.data); // NOT OK
|
||||
data = jsyaml.load(req.params.data); // OK
|
||||
data = jsyaml.loadAll(req.params.data); // OK
|
||||
data = jsyaml.safeLoad(req.params.data); // OK
|
||||
data = jsyaml.safeLoadAll(req.params.data); // OK
|
||||
|
||||
let unsafeConfig = { schema: jsyaml.DEFAULT_FULL_SCHEMA };
|
||||
data = jsyaml.load(req.params.data, unsafeConfig); // NOT OK
|
||||
data = jsyaml.loadAll(req.params.data, unsafeConfig); // NOT OK
|
||||
data = jsyaml.safeLoad(req.params.data, unsafeConfig); // NOT OK
|
||||
data = jsyaml.safeLoadAll(req.params.data, unsafeConfig); // NOT OK
|
||||
|
||||
data = jsyaml.load(req.params.data, { schema: jsyaml.DEFAULT_SCHEMA }); // OK
|
||||
|
||||
data = jsyaml.load(req.params.data, { schema: jsyaml.DEFAULT_SCHEMA.extend(require('js-yaml-js-types').all) }); // NOT OK
|
||||
data = jsyaml.load(req.params.data, { schema: jsyaml.DEFAULT_SCHEMA.extend(require('js-yaml-js-types').function) }); // NOT OK
|
||||
data = jsyaml.load(req.params.data, { schema: jsyaml.DEFAULT_SCHEMA.extend(require('js-yaml-js-types').undefined) }); // OK
|
||||
|
||||
data = jsyaml.load(req.params.data, { schema: require('js-yaml-js-types').all.extend(jsyaml.DEFAULT_SCHEMA) }); // NOT OK
|
||||
data = jsyaml.load(req.params.data, { schema: require('js-yaml-js-types').function.extend(jsyaml.DEFAULT_SCHEMA) }); // NOT OK
|
||||
data = jsyaml.load(req.params.data, { schema: require('js-yaml-js-types').undefined.extend(jsyaml.DEFAULT_SCHEMA) }); // OK
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user