2016-09-25 2 views
0

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

Как я могу добиться этого для атаки CSRF? Я могу отправить первый запрос, скрытый в iframe, но мне нужен этот токен, чтобы отправить второй запрос POST.

Ajax не удается из-за CORS.

Так что даже можно на одной странице

  1. запрос Отправить GET
  2. Анализировать ответ и получить маркер
  3. Отправить POST форму с маркером, чтобы вызвать CSRF

ответ

0

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

Дьявол в деталях. Как генерируется токен (какой алгоритм и/или случайный генератор используется, сколько энтропии он имеет) и как он затем проверяется? Он хранится где-то или без гражданства? Когда вы создаете новый токен и когда вы повторно используете старый? Это некоторые вопросы, которые необходимо учитывать, как всегда, при защите от CSRF.

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

+0

После GET ничего не отправляется с клиентской стороны, но ответ содержит токен, сгенерированный сервером, который не подчиняется заголовку X-CSRF. Мне нужно взять это и снова отправить. Нам нужно просто захватить источник первого GET и найти токен – ahelpyguy

Смежные вопросы