gpt4 book ai didi

node.js - 使用 sails.js 修改响应 header 以实现 HSTS

转载 作者:搜寻专家 更新时间:2023-10-31 22:32:24 24 4
gpt4 key购买 nike

我正在使用 sails.js 实现一个 nodejs 应用程序.我希望我的用户仅通过 https 进行通信。因此,为此我需要以我的方式配置我的服务器,以便在每个响应中添加一个 header “Strict-Transport-Security”、“max-age=31536000”,以告诉浏览器仅与 HSTS 通信。现在我如何修改我要从 sails js 发送的每个响应 header 。我搜索了文档但没有找到任何帮助。

最佳答案

策略仅适用于您在 config/policies.js 中明确分配给它们的 Controller 。

不使用策略,而是尝试直接在 config/express.js 中添加一个 express 中间件(如果文件不存在,请创建该文件)。此中间件应用于所有 Controller 。格式如下:

// config/express.js
"use strict";
exports.express = {
customMiddleware: function (app) {
app.use(function hsts(req, res, next) {
res.setHeader("Strict-Transport-Security", "max-age=31536000");
next();
});
}
}

如果您有多个要使用的快速自定义中间件,我的建议是将每个中间件函数保存在自己的文件中。我将提供一个示例,使用您的中间件以及接受某些选项的附加中间件。

// config/express.js
"use strict";
var hsts = require('../lib/middleware/hsts');
var staticguard = require('../lib/middleware/staticguard');
exports.express = {
customMiddleware: function (app) {
// ordering of middleware matters!
app.use(hsts);
app.use(staticguard(/^\/protected\/.*$/));
}
}

// lib/middleware/hsts.js
"use strict";
module.exports = function hsts(req, res, next) {
res.setHeader("Strict-Transport-Security", "max-age=31536000");
next();
}

// lib/middleware/staticguard.js
"use strict";
module.exports = function (regex) {
return function (req, res, next) {
if (!regex.test(req.url)) {
return next();
}
res.end('you are not allowed!');
}
};

如果您尝试让多个文件在“express.customMiddleware”命名空间上导出一个函数,我相信只有最后加载的文件的中间件才能工作。不过我还没有尝试过。

关于node.js - 使用 sails.js 修改响应 header 以实现 HSTS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21566912/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com