Что такое CSRF?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
CSRF (Cross-Site Request Forgery) — это вид атаки, при котором злоумышленник заставляет пользователя выполнить нежелательные действия на веб-сайте, на котором пользователь уже аутентифицирован.
Суть атаки заключается в том, что вредоносный сайт или письмо содержит запрос, который браузер пользователя автоматически отправляет на целевой сайт. Если пользователь залогинен на целевом сайте, его браузер отправит cookies, и запрос будет выполнен с его правами.
Например, это может быть запрос на изменение пароля, перевод денег или удаление аккаунта.
Для защиты от CSRF используются различные методы:
- CSRF-токены: Секретные, уникальные для каждого запроса токены, которые генерируются на сервере и отправляются с каждой формой или AJAX-запросом. Сервер проверяет соответствие полученного токена.
- SameSite cookie attribute: Устанавливает правило, при котором cookie отправляются сервером браузера только при запросах с того же домена, с которого был установлен cookie.
- Проверка Origin и Referer заголовков: Сервер проверяет, откуда пришел запрос. Однако эти заголовки могут быть изменены злоумышленником или не присутствовать в некоторых случаях.
- Требование повторной аутентификации для критических действий: Запрос на ввод пароля перед выполнением важных операций.
Наиболее эффективным и распространенным методом является использование CSRF-токенов.
// Пример добавления CSRF-токена в форму
<form action="/transfer" method="POST">
<input type="hidden" name="_csrf_token" value="тут_генерированный_сервером_токен">
<input type="number" name="amount">
<button type="submit">Перевести</button>
</form>
// Пример проверки CSRF-токена на сервере (Node.js с Express)
app.post('/transfer', csrfProtection, (req, res) => {
// Обработка запроса после успешной проверки токена
});