Если у вас есть сайт с формами (регистрация, комменты, смена пароля и т.п.), то вряд ли вы не слышали про CSRF. Вкратце — это когда злоумышленник заставляет пользователя вашего сайта ненамеренно выполнить какое-то действие. Например, нажать кнопку «удалить» или «сменить email», просто перейдя по вредной ссылке.
Чаще всего атаки такого типа срабатывают, если на сервере не проверяется, откуда пришёл запрос. Проверка реферера — не лучший способ, потому что он легко подделывается.
Что реально помогает? Самый надёжный подход — использовать CSRF токены, которые генерируются для каждой сессии и проверяются при отправке формы. Без правильного токена сервер просто отклонит запрос. Это просто и эффективно.
Если в проекте есть фреймворк — почти всегда там уже есть встроенная поддержка CSRF-защиты (Laravel, Django, Spring и др.). Для самописных движков — нужно явно добавить проверку токена.