JS: Move cors-misconfiguration query from experimental to Security#20139
JS: Move cors-misconfiguration query from experimental to Security#20139
Conversation
|
QHelp previews: javascript/ql/src/Security/CWE-942/CorsPermissiveConfiguration.qhelpPermissive CORS configurationA server can use RecommendationWhen the On the other hand, if the If the ExampleIn the example below, the import { ApolloServer } from 'apollo-server';
var https = require('https'),
url = require('url');
var server = https.createServer(function () { });
server.on('request', function (req, res) {
// BAD: origin is too permissive
const server_1 = new ApolloServer({
cors: { origin: true }
});
let user_origin = url.parse(req.url, true).query.origin;
// BAD: CORS is controlled by user
const server_2 = new ApolloServer({
cors: { origin: user_origin }
});
});In the example below, the import { ApolloServer } from 'apollo-server';
var https = require('https'),
url = require('url');
var server = https.createServer(function () { });
server.on('request', function (req, res) {
// GOOD: origin is restrictive
const server_1 = new ApolloServer({
cors: { origin: false }
});
let user_origin = url.parse(req.url, true).query.origin;
// GOOD: user data is properly sanitized
const server_2 = new ApolloServer({
cors: { origin: (user_origin === "https://allowed1.com" || user_origin === "https://allowed2.com") ? user_origin : false }
});
});References
|
javascript/ql/test/query-tests/Security/CWE-942/CorsPermissiveConfiguration.qlref
Fixed
Show fixed
Hide fixed
ccc8234 to
358617f
Compare
c711892 to
92daa7d
Compare
No description provided.