Ответ
Что хотят услышать интервьюеры
Интервьюеры ожидают четкое понимание понятия CSRF (Cross-Site Request Forgery), его механизмов работы, потенциальных угроз и методов защиты от таких атак. Кандидат должен продемонстрировать знание о том, каким образом злоумышленники могут использовать CSRF для выполнения нежелательных действий от имени пользователя, а также предложить решения для минимизации рисков.
Определение CSRF
CSRF (Cross-Site Request Forgery) — это тип атаки, при которой злоумышленник обманывает пользователя, заставляя его отправить несанкционированный запрос к веб-приложению, где он аутентифицирован. Это может привести к выполнению действий, которые пользователь не намеревался совершать.
Как работает CSRF
- Аутентификация пользователя: Пользователь входит в свою учетную запись на сайте (например, интернет-банке).
- Злоумышленник готовит атаку: Пользователь открывает злоумышленный сайт, на котором размещена вредоносная ссылка или скрипт, инициирующий запрос к целевому сайту.
- Отправка запроса: Когда пользователь взаимодействует с вредоносным контентом, браузер отправляет запрос к целевому сайту, включая все необходимые куки (например, для аутентификации).
- Выполнение нежелательных действий: Целевой сайт обрабатывает запрос как легитимный, поскольку куки указывают на то, что пользователь аутентифицирован, и выполняет действие (например, перевод средств).
Методы защиты от CSRF
- Токены CSRF: Использование уникальных токенов для каждой формы. Токен должен быть отправлен вместе с запросом, и сервер проверяет его перед выполнением действия.
- Проверка реферера: Сервер может проверять заголовок
Refererв запросе, чтобы убедиться, что он исходит из доверенного источника. - Сессии: Использование текущей сессии пользователя для аутентификации и проверки запросов.
Что могут спросить дальше
- Объяснить, как токены CSRF работают на практике.
- Привести примеры известных атак CSRF.
- Подробно рассмотреть, как проверка реферера может быть обойдена.
- Обсудить, как CSRF может сочетаться с другими атаками, такими как XSS.