2017-01-05 8 views
1

Согласно Security Best Practices от Express, я внедрил Helmet.Заказ промежуточного программного обеспечения Express

Как я использую несколько (cookie-session промежуточное программное, morgan, body-parser и различные самодельные для аутентификации промежуточное программное), я теперь интересно, в каком порядке я должен поставить их.
Есть ли руководство по лучшей практике для middlewares, их безопасность и порядок?

+1

Я не знаю общей лучшей практики - я думаю, что это зависит от промежуточного ПО. Например, вы можете сначала поместить Morgan, чтобы он регистрировал все запросы и никогда не пропускался. –

+0

@EvanHahn Да, но что такое «шлем»? Поскольку он проверяет все запросы на потенциальные уязвимости, разве это не должно быть до «morgan»? –

+1

Мы можем поговорить подробнее о проблеме [Helmet GitHub] (https://github.com/helmetjs/helmet/issues/144). –

ответ

2

В вашем случае я бы использовал шлем в качестве первого промежуточного программного обеспечения.

Важнейшей причиной этого является обработка HSTS. Это будет обрабатывать бит, в котором пользователи FORCED используют версию HTTPS вашего сайта, вместо простой HTTP-версии.

Не объявление Шлем сначала на сайте HTTPS может привести к некоторым интересным уязвимостям, поскольку пользователи могут потенциально начать транзакцию через HTTP, передавая конфиденциальную информацию в ваш webapp, который может быть использован злонамеренно, после чего их запрос позже перенаправляется на HTTPS через Шлем (не хорошо).

Это интересный вопрос, и это обязательно должно быть добавлено к документам Helmet.

+1

Я собираюсь сделать проблему в репозитории Helmets на GitHub. –

+2

См. Недавно созданную [проблему Helmet GitHub] (https://github.com/helmetjs/helmet/issues/144). –

+1

Супер удивительный. Очень быстрое разрешение. +1 потрясающий проект/отличный помощник. – rdegges