Я вижу, что заголовок access-control-allow-origin по умолчанию устанавливается на подстановочный знак всякий раз, когда я выполняю HTTP GET для моей службы Restify с включенной CORS. Я бы предпочел, чтобы он повторял отправленное мной Origin, поскольку это лучшая практика для OWASP . Какие-нибудь рекомендации, как я могу это сделать? Пробовал заголовки по умолчанию, средства форматирования и т. Д., Которые есть в документации API, но не повезло.
Вот что я делаю:
var server = restify.createServer({
name: 'People Data Service',
version: '1.0.6'
});
server.pre(wrapper(restify.pre.pause()));
// Cleans up sloppy paths
server.pre(wrapper(restify.pre.sanitizePath()));
server.use(wrapper(restify.acceptParser(server.acceptable)));
server.use(wrapper(restify.authorizationParser()));
server.use(wrapper(restify.queryParser()));
server.use(wrapper(restify.bodyParser()));
server.use(wrapper(restify.CORS()));
// server.use(wrapper(restify.fullResponse()));
// Needed this for OPTIONS preflight request: https://github.com/mcavage/node-restify/issues/284
function unknownMethodHandler(req, res) {
if (req.method.toUpperCase() === 'OPTIONS') {
console.log('Received an options method request from: ' + req.headers.origin);
var allowHeaders = ['Accept', 'Accept-Version', 'Content-Type', 'Api-Version', 'Origin', 'X-Requested-With', 'Authorization'];
if (res.methods.indexOf('OPTIONS') === -1) {
res.methods.push('OPTIONS');
}
res.header('Access-Control-Allow-Credentials', false);
res.header('Access-Control-Expose-Headers', true);
res.header('Access-Control-Allow-Headers', allowHeaders.join(', '));
res.header('Access-Control-Allow-Methods', res.methods.join(', '));
res.header('Access-Control-Allow-Origin', req.headers.origin);
res.header('Access-Control-Max-Age', 1209600);
return res.send(204);
}
else {
return res.send(new restify.MethodNotAllowedError());
}
}
server.on('MethodNotAllowed', wrapper(unknownMethodHandler));