根据 Express 的安全最佳实践,我实现了 Helmet
.
由于我正在使用多个中间件(cookie-session
,morgan
,body-parser
和各种自制中间件进行身份验证),我现在想知道应该将它们按哪个顺序放置。
是否有关于中间件及其安全性和秩序的最佳实践指南?
在你的情况下,我会使用头盔作为第一个中间件。
最重要的原因是HSTS处理。这将处理用户被迫使用您网站的HTTPS版本而不是普通HTTP版本的位。
没有首先在HTTPS站点上列出Helmet可能会导致一些有趣的漏洞,因为用户可能会通过HTTP启动交易,将敏感信息传递给您的Web应用程序,这些信息可以被恶意使用,然后让他们的请求稍后通过Helmet重定向到HTTPS(不好)。
这是一个有趣的问题,这绝对应该添加到头盔文档中。