Какими способами вы можете защитить веб-страницу, чтобы ее можно было просматривать ТОЛЬКО из iFrame?

Этот поток был создан еще в 2008 году. Ограничение доступа к IFRAME в PHP

Я собираюсь сделать почти то же самое. т. е. я хочу, чтобы сайты были общедоступными, пока они просматриваются из определенного iFrame, из определенного приложения. Приложение IFrame будет иметь аутентификацию пользователей, предоставляющую им доступ к URL-адресам за пределами основного приложения. Все URL-адреса, вероятно, будут созданы с использованием инструментов PHP с открытым исходным кодом, например. Вордпресс.

И просматриваемый iFrame, и просматриваемые сайты/страницы будут принадлежать нам.

Были ли какие-либо разработки в последние несколько лет в отношении способов сделать это?

По разным причинам, не связанным с этой конкретной проблемой, я рассматриваю возможность использования серверной инфраструктуры RIA Vaadin (JAVA) для создания приложения, которое будет содержать средство просмотра iFrame.

Демонстрация встроенного виджета находится здесь http://demo.vaadin.com/sampler#WebEmbed Глядя на исходный код страницы, я нигде не вижу, чтобы отображался адрес встроенной веб-страницы. Поэтому в какой-то степени я задаюсь вопросом, могу ли я скрыть свои URL-адреса от поисковых систем, дать им очень длинные, случайно сгенерированные URI, и, возможно, их все равно будет невозможно найти?


person Duncan Ross Hamilton    schedule 05.12.2011    source источник


Ответы (1)


У вас должна быть возможность изменить framekiller, чтобы сделать обратное. Фреймкиллер — это фрагмент javascript для предотвращения кликджекинга путем определения того, была ли страница загружена в iframe.

Ограничить загрузку iframe на определенной странице сложнее. Посмотреть на реферера легко, но также легко и обойти. Если вы загружаете iframe со страницы https, реферер будет пустым. Лучшим способом было бы потребовать от сервера получить Nonce и включить его в URL-адрес iframe. Например, http://iframe_url?key=difhj8j84528423j423894hfdj897 или что-то еще. Было бы идеально, если бы сервер сделал запрос на ваш сервер. Выполнение этого с кодом на стороне клиента и jsonp для получения одноразового номера проблематично, поскольку злоумышленник может предоставить модифицированный javascript для получения одноразового номера.

person rook    schedule 05.12.2011
comment
Спасибо за ответ. Так вы говорите, что это возможно? Использование какой-либо техники шифрования между сервером и приложениями, которые находятся вне системы. - person Duncan Ross Hamilton; 06.12.2011
comment
Вы также говорите, что лучше использовать Vaadin, который находится на стороне сервера, поскольку он защищен от клиента? - person Duncan Ross Hamilton; 06.12.2011