Knowledge Base

X-Frame-Options и защита от clickjacking

Что такое clickjacking

Категория: HTTP · Риск: low

Что такое clickjacking

Атакующий встраивает ваш сайт в прозрачный iframe поверх своей страницы. Пользователь думает, что кликает по одному сайту, а на самом деле — по вашему.

X-Frame-Options

X-Frame-Options: DENY          — никто не может встраивать
X-Frame-Options: SAMEORIGIN    — только тот же домен
X-Frame-Options: ALLOW-FROM https://partner.com  — устарело, не поддерживается в Chrome

Современный способ — CSP frame-ancestors

# Запрет встраивания
add_header Content-Security-Policy "frame-ancestors 'none'" always;

# Только тот же домен
add_header Content-Security-Policy "frame-ancestors 'self'" always;

# Конкретный партнёрский домен
add_header Content-Security-Policy "frame-ancestors 'self' https://partner.com" always;

`frame-ancestors` в CSP имеет приоритет над `X-Frame-Options` в современных браузерах. Используйте оба для совместимости.

Nginx — добавить оба заголовка

add_header X-Frame-Options "SAMEORIGIN" always;
add_header Content-Security-Policy "frame-ancestors 'self'" always;