Формы CSRF - Вы можете изменить токен? - PullRequest
0 голосов
/ 01 мая 2018

Просто хотел задать общий вопрос относительно PHP & HTML Forms с токенами CSRF, поэтому вы генерируете случайный токен и сохраняете его в переменной сеанса в PHP и выводите как скрытое поле в форме HTML.

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

  • 1 человек по имени Боб просматривает secureform.php страница
  • Тот же человек, который просматривает badform.php страница

Если Боб зашел на страницу badform.php и сгенерировал токен, а затем они пошли на secureform.php и получили токен от secureform.php, поместили его в badform.php через элемент inspect и отправили его, что тут есть способ обойти CSRF правильно?

Могу ли я оставить отзыв о том, сработает ли это и как предотвратить подобные вещи? Если это имеет смысл, если нет, дайте мне знать, спасибо!

1 Ответ

0 голосов
/ 01 мая 2018

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

Версия подделки межсайтовых запросов в том же мире сценария: кто-то еще (назовите их Евой) обманывает Боба в отправке badform.php . Поскольку Ева контролирует содержимое формы, но Боб отправляет его со своим файлом cookie сеанса или другой информацией для аутентификации, Ева может выполнять действия, которые разрешено выполнять только Бобу.

Однако, если для формы требуется дополнительный токен CSRF, У Евы нет доступа к этому токену , поэтому, когда они обманывают Боба в отправке формы, она отклоняется. Единственный способ, которым Ева может получить форму для проверки, - это заставить Боба скопировать действительный токен из secureform.php, что гораздо сложнее, чем заставить их отправить форму.

...