中间件订购快递

Middleware order Express

根据Express的Security Best Practices,我实现了Helmet

由于我使用了多个中间件(cookie-sessionmorganbody-parser和各种自制的中间件进行身份验证,我现在想知道我应该按什么顺序放他们。
是否有中间件及其安全性和顺序的最佳实践指南?

在你的情况下,我会使用头盔作为第一个中间件。

最重要的原因是 HSTS 处理。这将解决用户被迫使用您网站的 HTTPS 版本而不是普通 HTTP 版本的问题。

不在 HTTPS 网站上首先列出 Helmet 可能会导致一些有趣的漏洞,因为用户可能会通过 HTTP 开始交易,将敏感信息传递到您的 webapp,这可能会被恶意使用,然后让他们的请求稍后重定向到 HTTPS通过头盔(不好)。

这是一个有趣的问题,绝对应该添加到 Helmet 文档中。