2016-12-02 3 views
0

Я хочу, чтобы отключить IFRAME вложения страниц моего сайта на других сайтах , и я делаю это Js:отключить IFrame вложение для других сайтов

<script type="text/javascript"> if(document.referrer.indexOf("mydomain.com") != -1) { window.location = "http://www.youtube.com/watch_popup?v=oHg5SJYRHA0"; } </script>

Script работает, но у меня есть page01.php и page02 .php

Я хочу, чтобы в исходном page01.php код вставки фрейма для page02.php

<iframe src="page02.php"></iframe> 

Когда я делаю это я, получил перенаправление:

http://www.youtube.com/watch_popup?v=oHg5SJYRHA0 

Как решить эту проблему? Thanks

+0

изменить строку адресата в 'window.location =" "'? Я бы запрограммировал его на серверной стороне в любом случае –

ответ

1

Я предлагаю вам использовать заголовок X-Frame-Options. Если вы используете Nginx вы можете добавить эту строку в блоке сервера или местоположения:

add_header X-Frame-Options "SAMEORIGIN"; 

При добавлении этого заголовка, современный браузер будет отклонить запрос, если кто-то пытается загрузить страницу в кадре. Обратите внимание, что это не будет работать в старых браузерах.

+0

Возможно, это хорошая идея, но где добавить этот код? В моем page02.php или сайте index.php? Или, может быть, в файле htaccess? Можете ли вы привести мне пример? Спасибо – Aleksandar

+0

Этот фрагмент входит в конфигурационный файл сервера nginx. Кажется, вы используете Apache. Попробуйте добавить «Заголовок добавить X-Frame-Options» SAMEORIGIN «' в ваш .htaccess файл –

+0

Фактически

0

Если вам не нравится оставлять защиту для браузеров, вы все равно можете использовать JS.

//Check if the page is loaded in an iframe 
if(window.self != window.top) { 
    //Almost all browsers will deny Cross-Origin script access, so 
    //we will use a try-catch block 
    try { 
    if(window.parent.location.hostname.indexOf("mydomain.com") == -1) { 
     window.location.href = "http://www.youtube.com/watch_popup?v=oHg5SJYRHA0"; 
    } else { 
     //You are in an iframe but Same-Origin 
    } 
    } catch (ex) { 
    //Congrats, you are in an iframe loaded in a stranger's site! 
    window.location.href = "http://www.youtube.com/watch_popup?v=oHg5SJYRHA0"; 
    } 
} 
+0

Спасибо за ответ, но с этим кодом у меня есть тот же isuue .. Ничего не изменилось .. – Aleksandar

0

Для веб-сайтов WordPress мы можем просто отказаться от кода ниже на wp-config.php, и он выполнит эту работу.

header('X-Frame-Options: DENY); 
Смежные вопросы