mirror of
https://github.com/github/codeql.git
synced 2026-05-01 11:45:14 +02:00
JS: add security query: js/request-forgery
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
| tst.js:16:5:16:20 | request(tainted) | The $@ of this request depends on $@. | tst.js:16:13:16:19 | tainted | URL | tst.js:12:29:12:35 | req.url | a user-provided value |
|
||||
| tst.js:18:5:18:24 | request.get(tainted) | The $@ of this request depends on $@. | tst.js:18:17:18:23 | tainted | URL | tst.js:12:29:12:35 | req.url | a user-provided value |
|
||||
| tst.js:22:5:22:20 | request(options) | The $@ of this request depends on $@. | tst.js:21:19:21:25 | tainted | URL | tst.js:12:29:12:35 | req.url | a user-provided value |
|
||||
| tst.js:24:5:24:32 | request ... ainted) | The $@ of this request depends on $@. | tst.js:24:13:24:31 | "http://" + tainted | URL | tst.js:12:29:12:35 | req.url | a user-provided value |
|
||||
| tst.js:26:5:26:43 | request ... ainted) | The $@ of this request depends on $@. | tst.js:26:13:26:42 | "http:/ ... tainted | URL | tst.js:12:29:12:35 | req.url | a user-provided value |
|
||||
| tst.js:28:5:28:44 | request ... ainted) | The $@ of this request depends on $@. | tst.js:28:13:28:43 | "http:/ ... tainted | URL | tst.js:12:29:12:35 | req.url | a user-provided value |
|
||||
@@ -0,0 +1 @@
|
||||
Security/CWE-918/RequestForgery.ql
|
||||
31
javascript/ql/test/query-tests/Security/CWE-918/tst.js
Normal file
31
javascript/ql/test/query-tests/Security/CWE-918/tst.js
Normal file
@@ -0,0 +1,31 @@
|
||||
import request from 'request';
|
||||
import requestPromise from 'request-promise';
|
||||
import superagent from 'superagent';
|
||||
import http from 'http';
|
||||
import express from 'express';
|
||||
import axios from 'axios';
|
||||
import got from 'got';
|
||||
import nodeFetch from 'node-fetch';
|
||||
import url from 'url';
|
||||
|
||||
var server = http.createServer(function(req, res) {
|
||||
var tainted = url.parse(req.url, true).query.url;
|
||||
|
||||
request("example.com"); // OK
|
||||
|
||||
request(tainted); // NOT OK
|
||||
|
||||
request.get(tainted); // NOT OK
|
||||
|
||||
var options = {};
|
||||
options.url = tainted;
|
||||
request(options); // NOT OK
|
||||
|
||||
request("http://" + tainted); // NOT OK
|
||||
|
||||
request("http://example.com" + tainted); // NOT OK
|
||||
|
||||
request("http://example.com/" + tainted); // NOT OK
|
||||
|
||||
request("http://example.com/?" + tainted); // OK
|
||||
})
|
||||
Reference in New Issue
Block a user