Как защитить сайт от проксирования и фрейминга
Очень часто некоторые нехорошие личности проксируют/фреймят в режиме онлайн сайт. Чтобы эффективно защитить от свой контент, можно воспользоватся двумя способами: бан по IP или домену в файле .htaccess (который неэффективен, так как злоумышленник может менять IP или домены очень часто) или с помощью кода в заголовке:
В разделе header сайта — между тегами <head> и </head> вашего документа нужно вставить следующий код:
<script> if((self.parent&&!(self.parent===self))&&(self.parent.frames.length!=0)){self.parent.location=document.location} </script> <script> if((self.parent&&!(self.parent===self))&&(self.parent.frames.length!=0)){alert('Этот материал сворован с сайта webdomainplus.com')} </script> <script type="text/javascript"> if(window.top != window) { window.location.href = 'https://webdomainplus.com'; } </script> <SCRIPT LANGUAGE="JavaScript"> <!-- { if (self.parent.frames.length != 0) self.parent.location="https://webdomainplus.com" } // --> </SCRIPT> <script> <!-- if (window!= top) top.location.href=location.href // --> </script>
Можно добавить и код попроще, также между тегами <head> и </head> вашего документа. Он позволит выявить, загружается ли ваш документ во фрейме, если да – то загрузка останавливается соответствующей командой:
<script type="text/javascript"> if (window.parent.frames.length > 0) { window.stop(); } </script>
Другой код, также между тегами <head> и </head> вашего документа, не только останавливает загрузку во фрейм, но и указывает откуда сворован контент. После завершения цикла показов о сворованном контенте, пользователь вернется на ваш сайт, но вы можете его направить хоть на Гугль, хоть на гей-дейтинг, прописав нужный урл вместо вашего домена:
<script> if((self.parent&&!(self.parent===self))&&(self.parent.frames.length!=0)){alert('Этот материал сворован с сайта webdomainplus.com')} </script> <script type="text/javascript"> if(window.top != window) { window.location.href = 'https://webdomainplus.com'; } </script>
А вот в таком виде код между тегами <head> и </head> не препятствует фреймингу, но возвращает пользователей на ваш сайт:
<script type="text/javascript"> if(self != top) { top.location=document.location; // читайте первоисточник document.close(); } </script>
Вместе с этим читают: CSP Заголовки Редирект
