Несколько вариантов как запретить открывать страницы своего сайта в <iframe>
с помощью htaccess, PHP и JS.
htaccess:
PHP:
До вызова функции header()
не должно быть вывода в браузер (echo
, ?>
).
JavaScript:
htaccess:
PHP:
JavaScript:
<script>
if (window.parent.frames.length > 0 && document.referrer.indexOf('example.com') == -1) {
window.stop();
}
</script>
В заголовке X-Frame-Options
есть третий параметр – ALLOW-FROM
, который указывает разрешенный URL, но он устарел и не работает. На смену ему пришел заголовок Content-Security-Policy
с директивой frame-ancestors
.
htaccess:
<IfModule headers_module>
Header set Content-Security-Policy "frame-ancestors 'self' http://example.com http://example.ru"
</IfModule>
Для поддержки IE, нужно отправлять второй заголовок X-Content-Security-Policy
с таким же содержанием.
PHP:
Второй вариант, без заголовка Content-Security-Policy
: