2017-01-04 6 views
1

Я выполнял проверки безопасности своего приложения Meteor с помощью ZAP (средство автоматической проверки безопасности). Я смог решить множество проблем с безопасностью, но я по-прежнему получаю предупреждения от части приложения. Например, произошла ошибка:Добавить заголовки в SockJS-соединение?

Web Browser XSS Protection is not enabled, or is disabled by the configuration of the 'X-XSS-Protection' HTTP response header on the web server

Эти предупреждения относятся к заголовкам HTTP.

Следующий код решает вышеуказанные проблемы безопасности заголовка на всех нормальных страницах:

WebApp.rawConnectHandlers.use(function(req, res, next) { 
    res.setHeader('X-XSS-Protection', '1; mode=block'); 
    next(); 
}); 

Но все/sockjs/Информация Cb = XXX вызовы (например,/sockjs/Информация центибар = 4yiv7ncev4.?) Некоторые? заголовков, добавленных с помощью res.setHeader(), не включены. Если я правильно понимаю, это вызовы между сервером и клиентом, такие как подписки или вызовы методам Метеор, а используемая структура - SockJS.

Есть ли способ включить дополнительные заголовки в эти подключения к Интернету?

Большое вам спасибо за помощь!

ответ

0

Попробуйте это:

const oldHttpServerListeners = WebApp.httpServer.listeners('request').slice(0); 
WebApp.httpServer.removeAllListeners('request'); 

const newListener = function(request, response) { 
    const args = arguments; 

    response.setHeader('X-XSS-Protection', '1; mode=block'); 

    _.each(oldHttpServerListeners, function(oldListener) { 
    oldListener.apply(WebApp.httpServer, args); 
    }); 

}; 

WebApp.httpServer.addListener('request', newListener); 
+0

Большое спасибо за Ваш ответ! Это спасло мой день! Он работал для всех заголовков, которые я хотел установить, ожидая заголовка «Access-Control-Allow-Origin», который всегда имеет значение *, независимо от того, какое значение я устанавливаю. Любая идея, как решить это последнее препятствие? PS: Я прошу прощения за задержку в ответе, я только видел ваше сообщение несколько дней назад. –

+0

Я думаю, что заголовок задан [sockjs] (https://github.com/sockjs/sockjs-node/blob/959d567c6d10dab9de5c82d1a031c30a28d82c66/src/trans-eventsource.coffee#L29). Я не знаю, как его переопределить. – Khang