Недействительный токен csrf что это

Типичные ошибки при защите сайтов от CSRF-атак

Недействительный токен csrf что это. Смотреть фото Недействительный токен csrf что это. Смотреть картинку Недействительный токен csrf что это. Картинка про Недействительный токен csrf что это. Фото Недействительный токен csrf что это

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

Замечание 1: если подходить формально, то CSRF является атакой, а не уязвимостью, как и XSS. Уязвимостью является неправильная обработка входных данных, а CSRF это использует.
Замечание 2: если какие-то ошибки показались вам очевидными и не заслуживающими упоминания, то я рад за вас. Однако данный материал основан на реальных уязвимостях крупных сайтов, а каждый пункт показывает ошибку какой-либо команды разработчиков, обернувшуюся дырой в безопасности.

Список ошибок:

1) Полностью отсутствует защита от CSRF.

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

2) Защищены не все запросы.

Я бы поставил эту ошибку на второе место по распространенности. На многих сайтах, где реализована какая-либо защита от CSRF, можно найти уязвимые запросы. Например, если вы воспользуетесь поиском Хабра habrahabr.ru/search/?q=CSRF, то увидите значительное количество статей, повествующих о найденных уязвимостях на тех сервисах, где есть защита.
Вы должны защищать абсолютно все запросы, которые изменяют что-либо на сайте. Вы добавили токен в форму смены адреса электронной почты, и злоумышленник не сможет завладеть аккаунтом вашего пользователя, изменив от его имени почту, а затем и пароль? Здорово. Вот только такая мера бесполезна, если можно просто отправить запрос на перевод денег с аккаунта жертвы на кошелек атакующего, минуя вашу защиту.
Удобство обеспечения безопасности — одна из причин использовать только метод POST для запросов, изменяющих данные пользователя. Если вы следуете этому совету, то необходимо просто убедиться, что все POST-запросы содержат надежный и правильный токен. Об этом речь пойдет ниже.

3) Использование для защиты от CSRF чего-либо, кроме токенов.

Как насчет использования капчи? Я слышал достаточно большое количество вопросов от разработчиков о возможности их использования для защиты от атаки. Мой однозначный ответ — нет. Во-первых, вы явно не будете заставлять пользователя вводить капчу на каждый чих: это приведет к ошибке № 2. Во-вторых, далеко не все способы реализации капч обеспечат вас должной защитой, которую злоумышленник не сможет обойти. Поскольку эта тема является весьма спорной и актуальной, в дальнейшем я посвящу ей отдельную статью.

Для защиты от CSRF вы должны использовать анти-CSRF токены и только их. Лишь они обеспечивают должную защиту ваших сайтов. В общих чертах о механизме токенов рассказано в Википедии:

Другим распространённым способом защиты является механизм, при котором с каждой сессией пользователя ассоциируется дополнительный секретный ключ, предназначенный для выполнения запросов. Пользователь посылает этот ключ среди параметров каждого запроса, и перед выполнением каких-либо действий сервер проверяет этот ключ. Преимуществом данного механизма, по сравнению с проверкой Referer, является гарантированная защита от атак данного типа. Недостатками же являются: требования возможности организации пользовательских сессий и динамической генерации HTML-кода активных страниц сайта.

4) Отсутствие проверки анти-CSRF токена при обработке запроса.

Подобную ошибку я встречал на сайтах весьма серьезных компаний, чья безопасность должна быть на высоте.
В самом запросе токен есть, а при его обработке он не проверяется. Можно вставить в это поле любую строку, запрос все равно будет корректно обработан. Комментировать тут особенно нечего, надо только указать, что применение функции isset() php.net/manual/ru/function.isset.php для проверки токена совершенно недопустимо.

5) Частичная проверка анти-CSRF токена.

Данную ошибку я встретил сразу на нескольких крупных сайтах рунета в разных вариациях. Например, один из сайтов использовал токены вида «Имя_пользователя.Текущее_время.Длинное_случайное_число». При этом проверялось только соответствие имени пользователя в токене и логина того, от чьего имени был отправлен запрос. Это немного усложняет атаку, но не делает ее невозможной.

6) Возможность использовать один токен для разных пользователей.

Данную ошибку я встретил один раз, но на достаточно крупном сайте, так что считаю необходимым упомянуть ее. Злоумышленник мог зарегистрировать новый аккаунт на сайте, скопировать токен из исходного кода страницы и использовать его для CSRF. Не допускайте такой ошибки, так как она полностью уничтожает все плюсы токенов на вашем сайте.

7) Недостаточная длина токена.

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

8) Предсказумые токены.

При разработке алгоритма генерации токена обязательно используйте случайные данные в токене (совет актуален, если вы разрабатываете всю систему с нуля. В случае использования фреймворка или CMS вы должны полагаться на их разработчиков). Поверьте, токен вида «md5(user_id)» — очень плохая идея.

9) Отсутствие токенов в админ-панели или системе для сотрудников техподдержки.

Даже если весь доступный вашим пользователям сайт защищен от CSRF, то не стоит забывать про панель администратора. В одной известной в узких кругах биллинг-системе было много CSRF именно в панели администратора (хотя они были и в публичной части системы, но это не так важно). И любой, кто знал структуру запросов, мог использовать CSRF-атаку на сотрудника техподдержки и получить доступ к данным всех клиентов компании, использующей данную биллинг-систему. Единственная проблема — необходимо узнать структуру запросов: для этого можно использовать социальную инженерию, скачать копию в открытых источниках или просто взломать менее защищенный сайт, использующий такую же систему.

10) Передача токенов в открытом виде, особенно в GET-запросах.

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

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

Источник

Недействительный токен csrf что это

Вам нужно добавить _token в свою форму, т.е.

Или просто добавьте << form_rest(form) >> перед закрывающим тегом формы.

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

Также вы можете увидеть это сообщение об ошибке, если в вашей форме много элементов.

Эта опция в php.ini вызывает проблему

Проблема в том, что поле _token пропускает запрос PUT (GET), поэтому вам нужно увеличить значение.

Также это касается больших файлов. Увеличение

Вариант решит проблему.

Это происходит потому, что формы по умолчанию содержат защиту CSRF, которая в некоторых случаях не требуется.

Вы можете отключить эту защиту CSRF в своем классе формы в методе getDefaultOptions следующим образом:

Если вы не хотите отключать защиту CSRF, вам необходимо отобразить поле защиты CSRF в вашей форме. Это можно сделать, используя << form_rest(form) >> в вашем файле просмотра, например:

<< form_rest(form) >> отображает все поля, которые вы не ввели вручную.

Перед тегом поместите:

Он автоматически вставит другие важные (скрытые) входные данные.

У меня была эта проблема со странным поведением: очистка кеша браузера не устранила это, но очистка файлов cookie (то есть файла cookie идентификатора сеанса PHP) решила проблему.

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

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

В недавнем случае мой коллега изменил ‘session_prefix’ на значение, в котором был пробел.

Это нарушило хранилище сеанса, что, в свою очередь, означало, что моя форма не могла получить токен CSRF из сеанса.

У меня недавно была эта ошибка. Оказалось, что мои настройки cookie были неправильными в config.yml. Добавление настроек cookie_path и cookie_domain в framework.session исправило это.

Недавно у меня была такая же проблема, и мой случай еще не упоминался здесь:

Возможно, что-то не так с сеансом при использовании Apache и localhost в качестве домена. Если кто-нибудь может уточнить в комментариях, я был бы счастлив отредактировать этот ответ, чтобы включить более подробную информацию.

Если вы не хотите использовать form_row или form_rest и просто хотите получить доступ к значению _token в вашем шаблоне веточки. Используйте следующее:

В моем случае у меня возникла проблема с аннотацией maxSize в сущности, поэтому я увеличил ее с 2048 до 20048.

Надеюсь, что этот ответ поможет!

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

Я столкнулся с подобной проблемой. Убедившись, что поле токена действительно отображается (см. Принятый ответ), я проверил свои файлы cookie. В моем браузере Chrome было 2 (!) Файла cookie для домена, по-видимому, потому, что я запускал приложение в том же домене, что и другое приложение, но с другим портом (т.е. mydomain.com установил исходный файл cookie, пока работало приложение с ошибками на mydomain.com:123) Теперь очевидно, что Chrome отправил неправильный файл cookie, поэтому защита CSRF не смогла связать токен с правильным сеансом.

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

У меня была такая же ошибка, но в моем случае проблема заключалась в том, что мое приложение использовало несколько доменов первого уровня, в то время как файл cookie использовал один. Удаление cookie_domain: «.%domain%» из framework.session в config.yml привело к тому, что файлы cookie по умолчанию использовались в любом домене, в котором была форма, и это устранило проблему.

Вы должны помнить, что токен CSRF хранится в сеансе, поэтому эта проблема также может возникать из-за неправильной обработки сеанса. Если вы работаете на локальном хосте, проверьте, например, если домен cookie сеанса установлен правильно (в PHP он должен быть пустым на локальном хосте).

Похоже, это проблема при использовании начальной загрузки, если только вы не визуализируете форму с помощью <

>. Кроме того, проблемы возникают только при вводе type = «hidden». Если вы проверите страницу с формой, вы обнаружите, что скрытый ввод вообще не является частью разметки или отображается, но не отправляется по какой-либо причине. Как было предложено выше, добавление <> или обертывание ввода, как показано ниже, должно помочь.

Источник

Недействительный токен CSRF. Отправьте форму еще раз. Администратор

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

11 ответов

В нашей конфигурации nginx

Который мне пришлось удалить.

Проверьте, не заполнена ли ваша файловая система.

Это может быть объяснение невозможности писать на нем.

Ini_set (‘session.save_path’, ‘путь / к / записываемому / каталогу /’);

Создайте файл phpinfo.php

Найти реальный путь сохранения сеанса

Изменить разрешение каталога

Это случилось со мной час назад. Убедитесь, что у вас достаточно места в / var. Почистил и снова работает.

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

Найдите session.save_path в phpinfo (/ var / lib / php / session для Centos) и измените режим:

Ваш сеанс должен содержать токен CSRF для предотвращения атаки CSRF. Это сообщение означает, что у вас либо нет сохраненного токена, либо ваш токен отличается от токена, созданного вашим сервером. Я предполагаю, что у вас нет пути с возможностью записи, настроенного в вашем php.ini, где вы можете сохранить сеанс. Убедитесь, что вы установили для session.save_path в php.ini доступный для записи путь.

Убедитесь, что /var/lib/php/session существует и что nginx может писать в него.

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

Источник

Не могу зайти на Sendpulse — выдаётся ошибка: токен отсутствует или неверен

Недействительный токен csrf что это. Смотреть фото Недействительный токен csrf что это. Смотреть картинку Недействительный токен csrf что это. Картинка про Недействительный токен csrf что это. Фото Недействительный токен csrf что это

Случается так, что, при желании посетить личные владения в Sendpulse, ни в какую невозможно зайти в аккаунт… Мы, не долго размышляя, пробуем вновь ввести /перезаписать пароль — всё одно войти не получается! и многие наши поползновения открыть страничку личного аккаунта СендПульс не приводят к положительным результатам!

Ошибка, как вариация веб казусов, может быть следующая и гласить: «CSRF токен отсутствует или неверен. Пожалуйста, обновите страницу для получения нового токена» (ниже будет дан скриншот).

В общем-то ошибка рядовая! однако, начинающего владелица рассылки, может озадачить тот факт что сендпульс не впускает в аккаунт; тратится масса времени на выяснение и устранение ошибки.

Ну, давайте рассмотрим сцену драмы подробнее: и через минуту будем в аккаунте!)

Токен (их много! нас интересует: программный токен), это понятие означает следующее — свидетельство о наличии полномочий для успешной аутентификации и используется для идентификации уникального владельца.

Программный токен автоматически выдаётся пользователю аккаунта перед/после успешной авторизации и является обязательным ключом для доступа к сервису.

если Sendpulse не принимает пароль аккаунта

Обычно эта ошибка токена случается из-за невозможности определить браузером пользовательские точки доступа… такой баг частенько выскакивает, когда у нас открываются одновременно и ещё одна-две подобные сервисные вкладки!

Принцип решения доступа в аккаунт Sendpulse достаточно прост, но, неожиданность задачи входа на сайт рассылки, как и говорилось, вводит в замешательство!

Вот сервисная страничка входа:

…и такое, к примеру, предупреждение:

Недействительный токен csrf что это. Смотреть фото Недействительный токен csrf что это. Смотреть картинку Недействительный токен csrf что это. Картинка про Недействительный токен csrf что это. Фото Недействительный токен csrf что это

Перезагрузка (как предлагает сервис) странички и перезапись пароля на этом этапе как правило не помогают.

Однако для некоторых владельцев весьма успешно способствует некоторая профилактика браузера, например — попробуем удалить куки сервиса рассылки и вообще — все личные данные аккаунта, чтобы как-то обновить токен:

1 — очистим данные сервиса: куки, пароли и кэш пр. пр.

В этой статье не стану пояснять подробно — как удаляются данные сервисов, — для этого есть иные полезные статьи: (подробнее описано тут: удаляем ненужные пароли, куки… и здесь: удалить в браузере данные SendPulse).

Но в теме этого поста… и чтобы как-то натолкнуть читателя на мысль решения проблемы входа в аккаунт Сендпульс, напоминаю: очистка кук в браузере, к примеру, в Фаерфокс происходит в этих настройках адресной строки обозревателя:

(во всех остальных случаях различных браузеров решения аналогичны!)

Недействительный токен csrf что это. Смотреть фото Недействительный токен csrf что это. Смотреть картинку Недействительный токен csrf что это. Картинка про Недействительный токен csrf что это. Фото Недействительный токен csrf что это

Если это не помогло — предупреждение не исчезло… ничего страшного (профилактика браузера лишней не бывает))! — приступим к следующему варианту:

Попробуйте войти в аккаунт в каком-то ином браузере. Вход как правило будет доступен! Всё нормально! однако нам нужно восстановить пароль в своём рабочем веб обозревателе, чтобы не совершать лишние телодвижения.

как восстановить пароль sendpulse

На страничке входа, соответственно кликаем «Забыли пароль?».

…Через некоторое время на указанную почту придёт ссылка на страничку восстановления пароля Сендпульс.

Возможно перейти по ссылке прямо из письма (в каком-то другом браузере) и… заменить пароль — Но!! я советую (если у вас почта открыта в стороннем браузере) скопировать ссылку и ввести в адресное окно основного своего обозревателя: таким образом данные обновятся и ничего не нужно будет вводить повторно!

Недействительный токен csrf что это. Смотреть фото Недействительный токен csrf что это. Смотреть картинку Недействительный токен csrf что это. Картинка про Недействительный токен csrf что это. Фото Недействительный токен csrf что это

Ну вот и всё — доступ восстановлен!

Недействительный токен csrf что это. Смотреть фото Недействительный токен csrf что это. Смотреть картинку Недействительный токен csrf что это. Картинка про Недействительный токен csrf что это. Фото Недействительный токен csrf что это

Если что-то не совсем ясно в моём описании, милости прошу к комментариям…

На этом занавес представления опускается…
…на рампы пыль печальная ложится…

Недействительный токен csrf что это. Смотреть фото Недействительный токен csrf что это. Смотреть картинку Недействительный токен csrf что это. Картинка про Недействительный токен csrf что это. Фото Недействительный токен csrf что этоOnline консультация по настройкам и созданию сайтов на WordPress

. подписываясь на обновления mihalica.ru —
. расстаёмся с невежеством.

Источник

Как защитить свой сайт с помощью Anti-CSRF токенов

Токены Anti-CSRF (или просто токены CSRF) — это уникальные значения, используемые в веб-приложениях для предотвращения атак с подделкой межсайтовых запросов (CSRF / XSRF). CSRF-атаки — это атаки на стороне клиента, которые могут использоваться для перенаправления пользователей на вредоносный веб-сайт, кражи конфиденциальной информации или выполнения других действий в рамках сеанса пользователя. В этой статье рассказано, как использовать токены CSRF для защиты пользователей от атак CSRF и их последствий.

Основы Anti-CSRF токенов

Основной принцип, лежащий в основе токенов anti-CSRF (также известных как шаблоны токенов синхронизатора), заключается в том, чтобы предоставить браузеру пользователя уникальную информацию (токен) и проверить, отправляет ли веб-браузер ее обратно. Токен должен быть уникальным и его невозможно угадать третьим лицам. Приложение не должно работать, если оно не проверит эту информацию. Таким образом, только исходный пользователь может отправлять запросы в аутентифицированном сеансе.

Допустим, вы запускаете веб-приложение социальной сети на сайте www.example.com. Чтобы опубликовать сообщение в своем профиле, пользователь заполняет HTML-форму и нажимает кнопку «Отправить».

Это заставляет веб-браузер отправлять POST запрос:

Если пользователь вошел в систему и злоумышленник знает синтаксис этого запроса, злоумышленник может использовать CSRF-атаку для публикации рекламы в профиле пользователя:

В результате веб-браузер отправляет следующий POST запрос:

Если ваш сайт использует простой токен anti-CSRF, веб-сервер устанавливает этот токен в cookie сеанса вашего веб-браузера сразу после входа в систему. Все отправленные формы через скрытое поле (hidden field), будут содержать этот токен. Таким образом это полностью устраняет уязвимость CSRF.

Затем сервер проверит, содержит ли каждый POST запрос требуемый токен:

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

Как генерировать и проверять токены

Когда вы создаете и позже проверяете свой токен, следуйте этим принципам, чтобы убедиться, что ваш anti-CSRF токен не может быть угадан или использован иным образом:

Например, в PHP вы можете сгенерировать токен следующим образом:

И проверьте токен следующим образом:

Anti-CSRF защита для форм

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

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

Когда вы получите запрос, сравните хеши. Если токен действителен и текущая форма действительна, хеши будут совпадать.

Anti-CSRF защита для каждого запроса

Если вам нужен очень высокий уровень защиты, вы можете использовать отдельные токены для каждого запроса. Это просто реализовать: все, что вам нужно сделать, это сделать токен недействительным после его проверки.

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

Использование непостоянных токенов

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

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

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

CSRF защита для Ajax

Токены Anti-CSRF также следует использовать для запросов Ajax. Однако перед тем, как реализовать какой-либо тип защиты CSRF для Ajax, убедитесь, что ваш веб-сервер не разрешает междоменные запросы Ajax (проверьте заголовки Cross-Origin Resource Sharing).

В случае Ajax вы можете включить свой токен в скрытое текстовое поле или непосредственно в JavaScript. Затем вы отправляете токен с каждым запросом Ajax и проверяете его присутствие на стороне сервера.

Anti-CSRF токены для формы входа

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

По этим причинам рекомендуется также включать anti-CSRF токены на все страницы входа.

Предотвращение CSRF атак за пределами токенов

Для углубленной защиты от CSRF вы можете комбинировать токены CSRF с другими подходами. Например, вы можете использовать настраиваемые заголовки для проверки запросов Ajax. Этот метод работает, потому что в соответствии с политикой одного источника для добавления заголовков запроса можно использовать только JavaScript из одного источника. Подробное обсуждение этого и других методов предотвращения CSRF см. OWASP Cross-Site Request Forgery Prevention Cheat Sheet.

Токены Anti-CSRF — один из самых безопасных способов защиты от атак CSRF, но в некоторых случаях их можно обойти. Например, если веб-приложение имеет уязвимость межсайтового сценария (XSS), злоумышленник может использовать ее для выполнения сценария, который незаметно извлекает новую версию формы с текущим токеном CSRF. Чтобы предотвратить это и обеспечить надежную безопасность веб-приложений, убедитесь, что вы проверяете свое веб-приложение на все типы уязвимостей, а не только на CSRF.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *