Можно ли предотвратить запуск нашего веб-сайта внутри фрейм-набора другого домена или IFrame? - PullRequest
6 голосов
/ 20 января 2009

Недавно у нас возникла проблема, когда другие сайты запускают наш сайт электронной коммерции внутри набора фреймов, где наш сайт (с прикрепленным идентификатором аффилированного лица) является единственным контентом в одном полноформатном фрейме. По сути, он выглядит и выглядит как наш сайт с URL-адресом вверху. Мы можем отключить их партнерский идентификатор, что сделало бы их бессмысленными, но это не помешает будущим правонарушителям делать то же самое, пока мы не узнаем об этом.

Существует ли общий способ (возможно, с помощью JavaScript, который появляется на каждой странице?), Чтобы предотвратить это? Обратите внимание, что добавление целей ко всем ссылкам неосуществимо, но добавление фрагмента JS на все страницы допускается, поскольку верхний и нижний колонтитулы совместно используются из одного источника.

Другая возможность будет на уровне Apache (если есть что-то, что мы можем сделать на стороне сервера), так как мы пропускаем все запросы через mod-rewrite.

Обратите внимание, что было бы важно разрешить загрузку страниц внутри IFrame, если родительская страница происходит из нашего домена, поскольку мы правильно используем IFrames

Ответы [ 4 ]

5 голосов
/ 20 января 2009

Я слышал о решениях этой проблемы, которые называются «фрейм-скрипт» Быстрый гугл приходит с этой веткой . Похоже, это один из самых простых:

if (window != top) top.location.href = location.href; 
4 голосов
/ 20 июня 2013

Я полагаю, что современный современный метод для достижения этой цели - Заголовок ответа X-Frame-Options .

От MDN:

Заголовок ответа HTTP X-Frame-Options можно использовать, чтобы указать, разрешено ли браузеру отображать страницу во фрейме или в фрейме. Сайты могут использовать это, чтобы избежать атак с использованием кликов, гарантируя, что их контент не будет встроен в другие сайты.

Взгляните на: Как запретить IFRAME перенаправлять окно верхнего уровня

2 голосов
/ 20 января 2009

Посмотрите на эту статью. Он предлагает довольно простое решение для обнаружения кадров и их разбития.

Как вырваться из фреймов с помощью JavaScript

Кроме того, я бы сделал еще один шаг вперед. Всякий раз, когда вы обнаруживаете фрейм, захватите партнерский идентификатор создателя сайта-нарушителя и отправьте его на сервер с AJAX вместе с URL-адресом, который они используют. Затем, автоматически или вручную, вы можете проверить, что они создают ваш сайт, и отменить свой партнерский код по одному.

0 голосов
/ 20 января 2009

Просто угадайте здесь ... но что, если вы используете javascript для вызова родительского окна, чтобы получить доступ к его объекту документа? Вы можете проверить, не является ли оно пустым, и если есть родительское окно (имеется в виду, что ваш сайт загружен фреймом), вы можете скрыть все свои html через JavaScript ...

...