Подтвердить что ты не робот

Node.js Проблемы безопасности Express Framework

Я ищу модули, которые следует добавить в приложение Node/Express, в котором рассматриваются общие проблемы безопасности, перечисленные ниже:

  • Уязвимости от инъекций (JavaScript, SQL, Mongo, HTML)
  • Фиксация и захват сеанса
  • Уязвимости между сайтами (сценарии, запрос на подделку)
  • Массовое присвоение
  • Вставьте здесь соответствующую озабоченность.

Спасибо за вашу помощь!

----------

Некоторые ресурсы, которые я нашел:

Отличный разговор (11/2012): http://lanyrd.com/2012/asfws/sxzbm/ (см. слайды)

Вопрос ServerFault (2011-2012): https://serverfault.com/info/285123/is-node-js-mature-for-enterprise-security

Сообщение в блоге по теме (9/2012): http://codefol.io/posts/29-Why-Rails-and-not-Sinatra-or-Node-js-

Exploit tester: https://code.google.com/p/skipfish/

Паспортный модуль: https://github.com/jaredhanson/passport

Модуль EveryAuth: https://github.com/bnoguchi/everyauth

4b9b3361

Ответ 1

Я написал сообщение в блоге, которое дает отличную отправную точку в Написание приложений Secure Express.js. Он охватывает несколько других вещей, помимо csrf и шлема, как упоминалось zeMirco.

Другое дело, что вы не можете сравнить express.js с рельсами. Это яблоки и апельсины. Например, нет ORM, который поставляется вместе с Express, что реализация или использование стороннего модуля зависит от вас.

Я попытаюсь дать вам разбивку каждой из ваших проблем.

-Injection Vulnerabilities (JavaScript, SQL, Mongo, HTML)

Опять же, это вещи, не встроенные в выражение. Ближайшей вещью будет XSS заботиться об инъекции в шаблоны. Шаблоны Jade или EJS, которые обычно используются с экспресс-кодированием, > "и по умолчанию, но помните, что есть другие контексты, такие как ввод пользователя в JavaScript или CSS, о которых вам нужно будет беспокоиться.

-Session fixation and hijacking

Снова см. сообщение в блоге выше, но Express основан на использовании connect, и один из них является промежуточным программным обеспечением сеанса. Самое главное здесь - правильно установить флаги файлов cookie.

-Cross-Site Vulnerabilities (Scripting, Request Forgery)

См. выше. Он также поставляется с промежуточным программным обеспечением express.csrf(). В упомянутом блоге показано, как его реализовать.

-Mass Assignment

Не проблема с express.js, поскольку у нее нет понятий, в которых этот тип уязвимости применим, однако настраиваемая логика, которую вы пишете, может быть на самом деле уязвима для этой проблемы, так что опять-таки проблема проверки того, уязвим или если вы используете сторонний модуль,...

Ответ 2

Два модуля, о которых я могу сразу подумать:

  • csrf: промежуточное ПО для защиты CRSF.
  • helmet: промежуточное программное обеспечение, реализующее различные заголовки безопасности

Ответ 4

Вы должны знать, что если вы укажете обработчик ошибок catch-all, вы не должны перезапускать сервер или делать что-либо блокирование в этом обработчике в ответ на ошибки USER (диапазон 4xx), поскольку это может привести к DOS уязвимость. Эта уязвимость автоматически адресуется в express-error-handler, и служба будет отключена, как только это будет возможно (когда активные соединения будут разряжены или произойдет тайм-аут), поэтому перезапуск не должен иметь большого значения. Реализация этого поведения сильно изменила мои тесты эксплойтов.

BTW, НЕ безопасно просто игнорировать все необработанные ошибки. Это оставит ваше приложение в состоянии undefined, что просто представляет собой уязвимость DOS другого типа.