Files
2020-07-08 10:01:04 +02:00

70 lines
2.5 KiB
JavaScript

var https = require('https');
var url = require('url');
var server = https.createServer(function(){});
server.on('request', function(req, res) {
res.setHeader("Access-Control-Allow-Origin", "https://semmle.com"); // OK, fixed origin
res.setHeader("Access-Control-Allow-Credentials", true);
});
server.on('request', function(req, res) {
let origin = url.parse(req.url, true).query.origin;
res.setHeader("Access-Control-Allow-Origin", origin); // NOT OK, tainted origin
res.setHeader("Access-Control-Allow-Credentials", true);
});
server.on('request', (req, res) => {
res.setHeader("Access-Control-Allow-Origin", null); // NOT OK, null origin
res.setHeader("Access-Control-Allow-Credentials", true);
});
server.on('request', (req, res) => {
res.setHeader("Access-Control-Allow-Origin", "null"); // NOT OK, null origin
res.setHeader("Access-Control-Allow-Credentials", true);
});
server.on('request', function(req, res) {
let origin = url.parse(req.url, true).query.origin;
res.setHeader("Access-Control-Allow-Origin", origin); // OK, credentials are not transferred
});
server.on('request', (req, res) => {
res.setHeader("Access-Control-Allow-Origin", null); // OK, credentials are not transferred
});
server.on('request', (req, res) => {
res.setHeader("Access-Control-Allow-Origin", null); // OK, credentials are not transferred
res.setHeader("Access-Control-Allow-Credentials", false);
});
server.on('request', (req, res) => {
let origin = url.parse(req.url, true).query.origin;
if (origin in o) {
res.setHeader("Access-Control-Allow-Origin", origin); // OK, sanitized origin
res.setHeader("Access-Control-Allow-Credentials", true);
}
});
// syntactic header defintion
probalyAServer.on('request', (req, res) => {
res.setHeader("Access-Control-Allow-Origin", null); // NOT OK (but not detected) [INCONSISTENCY]
res.setHeader("Access-Control-Allow-Credentials", true);
});
server.on('request', (req, res) => {
let origin = url.parse(req.url, true).query.origin;
if (ALLOWED_ORIGINS.indexOf(origin) !== -1) {
res.setHeader("Access-Control-Allow-Origin", origin); // OK, sanitized origin
res.setHeader("Access-Control-Allow-Credentials", true);
}
});
server.on('request', (req, res) => {
let origin = url.parse(req.url, true).query.origin;
if (ALLOWED_ORIGINS.indexOf(origin) >= 0) {
res.setHeader("Access-Control-Allow-Origin", origin); // OK, sanitized origin
res.setHeader("Access-Control-Allow-Credentials", true);
}
});