www.machinelearningmastery.ru

Машинное обучение, нейронные сети, искусственный интеллект
Header decor

Home
Занимательная история, выдающиеся люди, малоизвестные факты, находки, открытия, фальсификации. Присоединяйся!

Двойное Представление Образца Печенья

Дата публикации Oct 3, 2019

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

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

Имиджевый кредит -https://www.imperva.com/learn/application-security/csrf-cross-site-request-forgery/

Чтобы предотвратить атаку CSRF, мы можем использовать либо шаблон Double Submit Cookie, либо Synchronizer Token Pattern.

В этом посте я собираюсь обсудить шаблон Double Submit Cookie.

Шаблон cookie с двойной передачей использует файлы cookie для сохранения токенов CSRF и не требует сохранения каких-либо записей токенов в памяти сервера.

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

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

Поток шаблона двойной отправки cookie

Здесь у меня есть пример PHP-приложения, которое реализовано для демонстрации описанного выше процесса шаблона двойной отправки cookie.

Сначала пользователь должен войти в веб-приложение, используя свое имя пользователя и пароль. В моем коде я жестко закодировал учетные данные (username = «admin» / password = «admin123») для демонстрации.

После успешного входа в приложение оно перенаправит вас на страницу перевода денег (counter.php), где вы сможете перевести деньги на другой счет.

В то же время токен CSRF будет сгенерирован и сохранен в файле cookie в браузере. Также будет сгенерирован идентификатор сеанса и установлен как cookie.

Класс токенов, в котором определены методы generate_token и check_token

Когда страница денежного перевода загружается, она считывает значение cookie, а также значение токена, которое находится в теле, и получает токен CSRF и устанавливает его значение для скрытого текстового поля в форме.

Сравнение полученных двух значений токена (counter.php)
Значение токена, установленное в скрытом поле

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

Вы можете получить код отВот,

Спасибо!

Оригинальная статья

Footer decor

© www.machinelearningmastery.ru | Ссылки на оригиналы и авторов сохранены. | map