Часто, для защиты сайта приходится запрещать его отображение в фреймах на других сайтах (чужих). Так это сделано, например, на Вконтакте и Facebook.
А делается это не сложно.
1. Отправка серверного заголовка, запрещающего браузеру показывать содержимое во фрейме
Если есть доступ к Апачу, то в файле httpd.conf просто добавляем строку:
Header always append X-Frame-Options SAMEORIGIN
Пояснение:
DENY - запрет отображения во всех фреймах;
SAMEORIGIN - отображать только во фреймах, инициируемых самим сайтом.
2. Также можно при помощи php:
<?php header("X-Frame-Options: SAMEORIGIN"); ?>
3. При помощи Javascript
Код позволит выявить, загружается ли ваш документ во фрейме, если да – то загрузка останавливается соответствующей командой. Вставить код надо в HEAD:
<script type="text/javascript"> if (window.parent.frames.length > 0) { window.stop(); } </script>
4. или вот такой способ с перенаправлением на ваш сайт:
<script type="text/javascript"> if(self != top) // если текущий документ не является верхним элементом { top.location=document.location; // задаём верхнему элементу адрес нашей страницы } </script>
5. а вот так это сделано у яндекса
<script> if((self.parent&&!(self.parent===self))&&(self.parent.frames.length!=0)){self.parent.location=document.location} </script>