Выборочное отображение страниц - PullRequest
0 голосов
/ 29 февраля 2012

У меня есть страница, которую я отправляю в iframe. Сам iframe отображается условно на основе логики в бэкэнде. Возможно ли, чтобы только iframe мог отображать страницу?

По сути, я хочу иметь возможность вызывать страницу изнутри iframe, но человек, который получает прямой доступ к URL, будет перенаправлен или заблокирован.

Ответы [ 2 ]

1 голос
/ 29 февраля 2012

Вы можете проверить заголовок Referer и обслуживать страницу только в том случае, если она соответствует URL-адресу документа, содержащего iframe.Но это помешает только тому, кто случайно просматривает прямой URL.В общем случае ответ отрицательный: вы не можете контролировать, как пользовательский агент будет отображать содержимое.

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

0 голосов
/ 29 февраля 2012

Предположим, что URL для вашего iframe равен http://example.com/myiframepage. Страница, на которой отображается iframe, равна http://example.com/parentpage

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


  //in parentpage : 
  if(can_show_iframe) {
     
  }

Вам просто нужно пойти дальше и изменить код для myiframepage следующим образом -


  //in myiframepage
  if(can_show_iframe) {
     //normal processing
  }
  else {
     //return 403 error code which indicates access denied
  }
...