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