我一直在使用ZAP(自动安全扫描工具)在Meteor应用程序上运行安全检查。我已经能够解决很多安全问题,但是我仍然收到部分应用程序的警告。例如,以下错误:
未启用Web浏览器XSS保护,或通过Web服务器上“ X-XSS-Protection” HTTP响应标头的配置禁用了Web浏览器XSS保护
这些警告与HTTP标头有关。
以下代码解决了所有普通页面上的上述标头安全性问题:
WebApp.rawConnectHandlers.use(function(req, res, next) {
res.setHeader('X-XSS-Protection', '1; mode=block');
next();
});
但是,在所有/ sockjs / info?cb = XXX调用(例如/ sockjs / info?cb = 4yiv7ncev4)上,不包含某些随res.setHeader()添加的标头。如果我正确理解,这是服务器和客户端之间的调用,例如订阅或对Meteor方法的调用,并且所使用的框架是SockJS。
有什么办法可以在这些websocket连接中包括额外的标题吗?
非常感谢你的帮助!
试试这个:
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);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句