根據Express的Security Best Practices,我實施了Helmet
。中間件訂單快遞
由於我使用多箇中間件(cookie-session
,morgan
,body-parser
和驗證各種自制的中間件),我現在不知道以何種順序我應該把他們。
是否有中間件的最佳實踐指南,它們的安全性和順序?
根據Express的Security Best Practices,我實施了Helmet
。中間件訂單快遞
由於我使用多箇中間件(cookie-session
,morgan
,body-parser
和驗證各種自制的中間件),我現在不知道以何種順序我應該把他們。
是否有中間件的最佳實踐指南,它們的安全性和順序?
就你而言,我會使用頭盔作爲第一個中間件。
最重要的原因是HSTS處理。這將處理用戶被強制使用您網站的HTTPS版本的位,而不是普通的HTTP位。
未列出首先在HTTPS站點上使用頭盔可能會導致一些有趣的漏洞,因爲用戶可能通過HTTP啓動事務,將敏感信息傳遞到可以惡意使用的Web應用程序,然後通過通過HTTPS重定向到HTTPS頭盔(不好)。
這是一個有趣的問題,這肯定應該添加到頭盔文檔。
我要在GitHub上的Helmets回購中發佈一個問題。 –
查看新創建的[Helmet GitHub問題](https://github.com/helmetjs/helmet/issues/144)。 –
超級棒。真正快速的解決方案也是如此。 +1真棒項目/偉大的維護者。 – rdegges
我不知道一般的最佳做法 - 我認爲這取決於中間件。例如,您可能希望首先將Morgan寫入,以便記錄所有請求並永遠不會被跳過。 –
@EvanHahn是的,但「頭盔」是什麼?因爲它正在檢查所有潛在漏洞的請求,所以不應該在「摩根」之前? –
我們可以在[Helmet GitHub問題](https://github.com/helmetjs/helmet/issues/144)上詳細討論。 –