В Laravel вы можете защитить свое приложение от атак с подделкой межсайтовых запросов (CSRF), используя встроенную защиту CSRF. Атаки CSRF — это тип атаки, когда вредоносный веб-сайт обманом заставляет пользователя отправить форму или сделать запрос от имени пользователя на другой веб-сайт. В этой статье мы рассмотрим, что такое CSRF-атаки, как работает защита от CSRF в Laravel и как ее использовать в вашем приложении Laravel.
Что такое CSRF-атаки?
При атаке CSRF злоумышленник создает веб-сайт, содержащий форму или другой запрос, нацеленный на уязвимый веб-сайт. Когда пользователь посещает веб-сайт злоумышленника и отправляет форму или запрос, запрос отправляется на уязвимый веб-сайт с информацией о сеансе пользователя. Это позволяет злоумышленнику выполнять действия от имени пользователя, такие как изменение пароля или совершение несанкционированных покупок.
Как работает защита от CSRF в Laravel
Защита от CSRF в Laravel работает путем добавления токена CSRF к каждой форме и запросу, отправленному из вашего приложения. Маркер уникален для каждого пользователя и каждого сеанса и проверяется на стороне сервера при получении запроса. Если токен недействителен, запрос отклоняется.
Чтобы использовать защиту Laravel CSRF, вам просто нужно включить директиву @csrf
в свои формы:
<form method="POST" action="/example"> @csrf <!-- Form fields go here --> </form>
Это создаст скрытое поле ввода с токеном CSRF. Когда форма будет отправлена, токен будет включен в запрос и проверен Laravel.
В дополнение к включению директивы @csrf
в ваши формы, Laravel также включает промежуточное программное обеспечение, которое автоматически проверяет токены CSRF для любых запросов, отличных от GET. Это ПО промежуточного слоя включено в группу ПО промежуточного слоя web
, которая по умолчанию применяется ко всем маршрутам, определенным в файле routes/web.php
.
Если вам нужно исключить определенные маршруты из защиты CSRF, вы можете сделать это, добавив их в массив $except
в промежуточном программном обеспечении VerifyCsrfToken
:
protected $except = [ 'stripe/*', ];
В этом примере любые маршруты, начинающиеся с /stripe
, будут исключены из защиты CSRF.
Это обзор защиты от CSRF в Laravel.
Ключевыми моментами этого урока являются
- Встроенная в Laravel защита от CSRF работает путем добавления уникального токена в сеанс каждого пользователя и его проверки на стороне сервера при получении запроса.
- Чтобы использовать защиту Laravel от CSRF, вы можете просто включить директиву
@csrf
в свои формы, которая создает скрытое поле ввода с токеном CSRF. - Защита Laravel от CSRF автоматически применяется ко всем запросам, отличным от GET, в группе промежуточного программного обеспечения
web
, но вы можете исключить определенные маршруты из защиты CSRF, добавив их в массив$except
в промежуточном программном обеспеченииVerifyCsrfToken
.
это из этой статьи
Сообщение для спонсоров
Привет! Вы хотите быть героем, который помогает финансировать интересные истории? Обещаю, это будет веселее, чем смотреть, как коты играют на пианино в Интернете. Давайте объединим усилия и сотворим волшебство!