📋

Ключевые факты

  • URL статьи: https://blog.miguelgrinberg.com/post/csrf-protection-without-tokens-or-hidden-form-fields
  • URL комментариев: https://news.ycombinator.com/item?id=46351666
  • Очков: 131
  • Комментариев: 23

Краткая сводка

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

Это предложение вызвало значительные споры в сообществе разработчиков, в частности, на Hacker News, где обсуждение набрало 131 очко и 23 комментария. Критики и сторонники анализируют жизнеспособность этого подхода по сравнению со стандартными методами защиты, такими как атрибут cookie SameSite.

В статье изучается механика этой альтернативной стратегии и потенциальные риски, связанные с отходом от установленных моделей безопасности. Обсуждение подчеркивает разницу между удобством разработки и строгими требованиями стандартов веб-безопасности.

Предложение: Переосмысление защиты от CSRF

Традиционная защита от атак Cross-Site Request Forgery (CSRF) сильно зависит от синхронизирующих токенов, часто встраиваемых в качестве скрытых полей в HTML-формах. Недавняя статья ставит под сомнение этот стандарт, предлагая механизм, который не требует этих токенов. Вместо этого метод предполагает, что браузеры могут различать запросы одного происхождения и кросс-доменные запросы другими способами.

Устранив необходимость в скрытых полях, предлагаемый метод направлен на упрощение процесса разработки. Разработчикам больше не придется вручную прикреплять токены к каждой форме, изменяющей состояние, или AJAX-запросу. Однако это упрощение вызывает вопросы о том, как сервер проверяет подлинность запроса без явного шага проверки токена.

Основа дискуссии заключается в том, как браузер передает информацию о происхождении запроса серверу. Предложение подразумевает, что определенные заголовки или поведение браузера могут служить заменой токена. Это переносит зависимость от логики уровня приложения на обеспечение безопасности на уровне браузера.

Реакция сообщества на Hacker News

Техническое сообщество, представленное обсуждением на Hacker News, отреагировало смесью скептицизма и любопытства. Ветка накопила 131 очко и 23 комментария, что указывает на высокий уровень вовлеченности. Многие комментаторы выразили обеспокоенность тем, что удаление явных токенов может привести к повторному появлению уязвимостей, с которыми отрасль усердно боролась.

Ключевые спорные моменты в обсуждении включали:

  • Зависимость от деталей реализации браузера, которые могут различаться или меняться.
  • Проблемы совместимости со старыми браузерами, которые не поддерживают предлагаемые заголовки.
  • Возможность путаницы между защитой от CSRF и атрибутом cookie SameSite.

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

Технические последствия и риски

Внедрение защиты от CSRF без токенов кардинально меняет модель угроз. В настоящее время, если злоумышленник не может угадать или украсть токен, он не может подделать запрос. В предлагаемой системе безопасность зависит от того, правильно ли браузер определяет происхождение запроса и правильно ли сервер интерпретирует эту идентификацию.

Если механизм опирается на такие заголовки, как Origin или Referer, существуют исторические прецеденты их удаления прокси-серверами или инструментами конфиденциальности. Это может привести к сценарию, когда легитимные запросы блокируются или, что еще хуже, когда вредоносные запросы разрешаются, потому идентифицирующий заголовок отсутствует.

Более того, предложение затрагивает взаимодействие между защитой от CSRF и Cross-Origin Resource Sharing (CORS). Неправильная настройка CORS в сочетании с предлагаемой проверкой без токенов может создать значительные дыры в безопасности. Статья служит сигналом для разработчиков пересмотреть, как их приложения обрабатывают запросы из других источников.

Заключение

Предложение убрать токены и скрытые поля из защиты от CSRF представляет собой значительный сдвиг в философии веб-безопасности. Хотя цель снижения трений в разработке является оправданной, сообщество безопасности остается осторожным. Обсуждение на Hacker News подчеркивает важность строгой проверки при защите пользовательских данных.

До тех пор, пока поставщики браузеров и органы по стандартам безопасности не примут унифицированный подход к защите без токенов, стандартная практика использования синхронизирующих токенов остается рекомендуемой стратегией. Разработчикам следует оставаться в курсе этих развивающихся обсуждений, но продолжать полагаться на проверенные модели безопасности для производственных приложений.