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;