Nano Hash - криптовалюты, майнинг, программирование

Безопасно ли использовать redis-rails в качестве хранилища сеансов?

При использовании в качестве хранилища сеансов я заметил, что redis-rails сохраняет идентификатор сеанса в незашифрованном формате в файле cookie. Разве идентификатор сеанса не должен рассматриваться как защищенная информация и не должен быть раскрыт в незашифрованном файле cookie, чтобы предотвратить попытки захвата сеанса?


  • Нет, не должны, если они защищены при передаче, которую обычно покрывает https. 10.09.2017
  • Сайт использует https, но все же кто-то может продолжать использовать случайные строки в качестве идентификатора сеанса, чтобы захватить чужой сеанс. Не могут? P.S. Могу ли я узнать, почему вопрос заминусован? 10.09.2017
  • Нет, они не могут, если сеансы не предсказуемы или у них больше времени, чем возраст Вселенной. Идентификатор сеанса просто должен быть случайным, непредсказуемым и достаточно большим. 10.09.2017
  • Теоретически вы могли бы сказать, что использование memcached/redis более безопасно, чем хранилище файлов cookie, поскольку инопланетяне с квантовыми суперкомпьютерами на основе super-unobtainium могут взломать шифрование. Эти же инопланетяне также могут угадать идентификатор сеанса при условии, что ваше приложение остается в сети и солнце не поглотит землю первым. 11.09.2017
  • Возможно, вы также захотите изучить devise gem. 11.09.2017

Ответы:


1

Нет

Файл cookie идентификатора сеанса — единственный (достойный) способ связать клиента с сеансом. У клиента должно быть какое-то требование, которое он может передать вместе с запросом, чтобы мы могли его идентифицировать.

Это применимо независимо от того, используете ли вы CookieStore, Redis, ActiveRecord или memcached.

Шифрование идентификатора сеанса с фиксированной солью или без соли не даст абсолютно ничего, кроме пустой траты времени, поскольку злоумышленник в любом случае имеет доступ к файлу cookie при атаке «человек посередине» или XSS.

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

Хотя вы можете использовать множество новых подходов, таких как соление с пользовательским агентом, ip или что-то еще, что, как вы думаете, вы знаете о клиенте, преимущества безопасности невелики.

Как сказал @pvg:

Идентификатор сеанса просто должен быть случайным, непредсказуемым и достаточно большим.

Значимыми способами защиты сеанса являются:

  • Используйте https для предотвращения атак «человек посередине».
  • Вызовите reset_session при входе и выходе пользователей, чтобы избежать фиксации сеанса.
  • Дезинфицируйте пользовательский ввод, чтобы избежать XSS.
10.09.2017
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..