添加 headers 到 SockJS 连接?
Add headers to SockJS connection?
我已经使用 ZAP(一种自动安全扫描工具)对我的 Meteor 应用程序进行了 运行 安全检查。
我已经能够解决很多安全问题,但我仍然收到有关部分应用程序的警告。比如下面的错误:
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 headers 有关。
以下代码解决了上述header所有正常页面的安全问题:
WebApp.rawConnectHandlers.use(function(req, res, next) {
res.setHeader('X-XSS-Protection', '1; mode=block');
next();
});
但是在所有 /sockjs/info?cb=XXX 调用中(例如 /sockjs/info?cb=4yiv7ncev4),一些 header 添加了 res.setHeader()不包含。如果我理解正确的话,这是服务器和客户端之间的调用,比如订阅或调用 Meteor 方法,使用的框架是 SockJS。
有没有办法在这些 websocket 连接中包含额外的 header?
非常感谢您的帮助!
试试这个:
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);
我已经使用 ZAP(一种自动安全扫描工具)对我的 Meteor 应用程序进行了 运行 安全检查。 我已经能够解决很多安全问题,但我仍然收到有关部分应用程序的警告。比如下面的错误:
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 headers 有关。
以下代码解决了上述header所有正常页面的安全问题:
WebApp.rawConnectHandlers.use(function(req, res, next) {
res.setHeader('X-XSS-Protection', '1; mode=block');
next();
});
但是在所有 /sockjs/info?cb=XXX 调用中(例如 /sockjs/info?cb=4yiv7ncev4),一些 header 添加了 res.setHeader()不包含。如果我理解正确的话,这是服务器和客户端之间的调用,比如订阅或调用 Meteor 方法,使用的框架是 SockJS。
有没有办法在这些 websocket 连接中包含额外的 header?
非常感谢您的帮助!
试试这个:
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);