Я работаю над решением для предприятий с использованием sailsjs как frameworks nodejs. Безопасность является неотъемлемой частью реализации. Помимо SSL, CORS, мы также используем реализацию CSRF sailsjs. Я все еще оцениваю, насколько безопасно использовать этот токен. Может ли кто-нибудь руководствоваться следующим: Где sailsjs хранит токен CSRF? Зашифровано? Насколько безопасно это использовать?Сохранение токена CSRF sailsjs
ответ
Вам нужно будет выполнить некоторую работу, чтобы проверить, что ваши токены недоступны для ненадежных серверов; они должны отвечать только на запросы GET, и они не должны быть доступны через AJAX, а также не должны быть включены заголовки CORS.
PillarJS имеет excellent readme on CSRF. Это говорит о CSRF токены:
CSRF Жетоны
Увы, окончательное решение с помощью CSRF токены. Как работают токены CSRF ?
Сервер отправляет клиенту токен. Клиент отправляет форму с токеном. Сервер отклоняет запрос, если токен недействителен. Злоумышленнику нужно как-то получить токен CSRF с вашего сайта, и для них придется использовать JavaScript для этого. Таким образом, если ваш сайт не поддерживает CORS, тогда злоумышленник не сможет получить токен CSRF , устраняя угрозу.
Убедитесь, что токены CSRF недоступны с помощью AJAX! Не создавайте маршрут /csrf только для того, чтобы захватить токен, и особенно не поддерживайте CORS на , что маршрут!
Токен просто должен быть «неопознанным», что затрудняет успешную атаку злоумышленника в течение нескольких попыток. Он не должен быть криптографически защищен . Атака - это один или два клика от пользователя unbeknownst, а не атаки грубой силы на сервере.
Также рассмотрим это из Sails.js docs, который дает реальный пример того, как они работают:
CSRF токены являются временными и одного сеанса; например Imagine Mary и Muhammad - оба покупателя, которые обращаются к нашему сайту электронной коммерции, работающему на . Паруса и защита CSRF включена. Предположим, что в понедельник Мэри и Мухаммад совершают покупки. Для этого наш сайт нуждался в , чтобы опустить как минимум два разных токена CSRF - один для Мэри и один для Мухаммада. С этого момента, если наш веб-сервер получил запрос с отсутствующим или неправильным токеном, этот запрос будет отклонен. Итак, теперь может быть уверен, что, когда Мэри отправится играть в онлайн-покер, , сторонний сайт не может обмануть браузера, отправив вредоносные запросы на наш сайт, используя ее файлы cookie.
И, наконец, Sails.js использует Connect CSRF protection middleware. Токены хранятся на основе за сеанс и поэтому не хранятся в базе данных и не требуют (двойного) шифрования. Вот еще один отличный ответ на эту тему: Why does Express/Connect generate new CSRF token on each request?
- 1. Преимущества одноразового токена csrf
- 2. CSRF Назначение запроса токена
- 3. Генерация токена CSRF
- 4. Ошибка токена CSRF (express.js)
- 5. Атака токена Php csrf
- 6. CSRF Ошибка после отправки правильного токена CSRF
- 7. Получение токена CSRF через AJAX
- 8. Переименовать переменную токена csrf Spring
- 9. Получение токена csrf в форме
- 10. sailsjs, используя режим кластера pm2 и CSRF
- 11. SailsJS View Layer Separation with CSRF
- 12. Использовать ограничение токена CSRF выборочно на маршрутах для приложения sailsjs или expressjs
- 13. Предотвращение уязвимостей CSRF, альтернативных методов для токена CSRF
- 14. Передача токена csrf в клиентское приложение
- 15. Нужны ли оба токена csrf и captcha?
- 16. Длина в байтах для токена CSRF
- 17. Разработка. Не удается проверить подлинность CSRF-токена
- 18. Ошибка проверки токена CSRF: PHP POST - SAP
- 19. Постоянное отклонение токена CSRF в Rails-приложении
- 20. Насколько тесная проверка токена CSRF в форме?
- 21. Передача токена CSRF от Node.js до Django
- 22. HttpHiddenMethodFilter вызывает двойную проверку токена csrf
- 23. Значение токена csrf отсутствует после сообщения формы
- 24. Нет токена csrf для веб-страницы Django
- 25. Форма без токена CSRF: каковы риски
- 26. Ajax Post to Laravel - несоответствие токена CSRF
- 27. определить пост-маршрут без токена csrf
- 28. Как избавиться от ошибки токена Invalide CSRF
- 29. Не удается проверить аутентификацию токена CSRF
- 30. Rails authenticity_token на форме против CSRF токена
Спасибо за подробный ответ.Но, пожалуйста, объясните, где хранится токен на протяжении всего сеанса? В памяти приложения? В этом случае он должен быть в некоторой структуре данных. – Navdeep
Память да, в переменной, если я правильно помню. Если вы смотрите на то, как извлекать токены, это также содержится в документации. – brandonscript
[Подключить промежуточное ПО для защиты CSRF] (http://www.senchalabs.org/connect/csrf.html) есть мой ответ. Благодарю. – Navdeep