Условие для X-Frame-Options

Рейтинг: 1Ответов: 1Опубликовано: 13.10.2014

На сайте прописал код, который запрещает открытие сайта через фреймы:

header("X-Frame-Options: Deny");

Теперь когда открывают сайт через iframe, там ничего не показывает, белый фон. Мне нужно прописать там текст, например, если сайт открыли через фрейм, то: "Запрещено"

  • Как тут дать условие?

Благодарю за внимание!

Ответы

▲ 1

Это можно сделать на JavaScript.

Создается защитный слой с высотой и шириной 100%, перекрывающий всю страницу, в котором можете прописать все, что угодно. Этот слой будет отображаться при загрузке страницы:

<div id="framebuster" style="display: block; width: 100%; height: 100%; position: fixed;">
    <a href="http://your_site" target="_top">Перейти на сайт</a>
</div>

После этого слоя в коде прописывается JavaScript, проверяющий, не загружена ли страница во фрейме:

<script type="text/javascript">
// Если страница не во фрейме,
if (top.document.domain==document.domain) {
    // скрываем защитный слой
    document.getElementById('framebuster').style.display = 'none';
}
</script>

В результате вместо вашей страницы во фрейме отобразится защитный слой с ссылкой на ваш сайт.

Важно знать, что этот метод легко обходится добавлением атрибута sandbox в iframe.