Поддержка Проблемы и решения Блокировка html-страницы от внешних фрэймов

  • У меня в проекте на данный момент есть две страницы, которые используют фрэймы, каждая свой html-файл. Этот файл на сервере обновляется каждые 45-60 минут, чтобы информация была своевременная. Он генерируется программой после обновления информации и закачивается по ftp на сервер. Программа для каждой страницы своя, находится у разных людей. Т.к. информация собирается о локальной сети, доступа извне к ресурсам этой сети нет.

    Поэтому единственным приемлимым решением для создания страницы в блоге с периодически обновляющейся информацией было использование фрэймов. В странице блога отображается содержимое сгенерированного html-файла. Сам файл подогнан под стиль блога, имеет свой css-файл, убрано всё лишнее. Этот файл будет находится на одном сервере с блогом. А теперь суть проблемы.

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

    Вероятнее всего это сделать через .htaccess, других путей не вижу. Как это прописать?

Просмотр 8 ответов — с 1 по 8 (всего 8)
  • Как я понимаю, этот плагин защищает только страницы блога. Мне же нужно закрыть файлы, не являющиеся структурой блога.

    Или же можно видоизменить текущий плагин. Всё его содержание сводится к срипту, который можно вписать в html-файлы. Суть работы его состоит в перенаправлении на страницу, которая должны была по идее отображаться во фрейме.

    <script type='text/javascript'>
    		<!--
    		try
    		{
    			var parent_location = new String(parent.location);
    			var top_location = new String(top.location);
    			var cur_location = new String(document.location);
    			parent_location = parent_location.toLowerCase();
    			top_location = top_location.toLowerCase();
    			cur_location = cur_location.toLowerCase();
    
    			if ( ( top_location != cur_location ) && parent_location.indexOf('{$home_url}') != 0 )
    			{
    				top.location.href = document.location.href;
    			}
    		}
    		catch ( err )
    		{top.location.href = document.location.href;}
    		//-->
    		</script>

    У меня возникло два вопроса:
    1) Как изменить скрипт, чтобы он перенаправлял не на страницу во фрейме, а на другую, которую в скрипте сам пропишешь.
    2) И нельзя ли будет нейтрализовать этот скрипт другим скриптом на «пиратском» сайте?

    Парни, неужели никто не подскажет, столько блогеров и разработчиков?

    Модератор Юрий

    (@yube)

    Всё, что можно увидеть, можно и украсть.

    Я бы не грузил в фрейм, я бы прямо в теле страницы показывал. Сделать шаблон страницы с readfile() вместо Цикла — на 5 минут работы.

    Сделать шаблон страницы с readfile() вместо Цикла — на 5 минут работы.

    А как сделать, чтобы содержимое показывалось не на всех страницах, а только на выбранных? И будет ли корректно отображать таблицу в читаемом файле?

    Модератор Юрий

    (@yube)

    А как сделать, чтобы содержимое показывалось не на всех страницах, а только на выбранных?

    Сделать для страницы отдельный шаблон.
    Иерархия шаблонов « WordPress Codex
    или
    Страницы « WordPress Codex

    И будет ли корректно отображать таблицу в читаемом файле?

    Не знаю, но мне кажется, что в нечитаемом будет плохо читаться.

    Посидел ещё, поработал над вышеприведённым скриптом и сделал то, что нужно. Скрипт находится в отдельных файлах, которые нужно защитить, поэтому в блог ничего вставлять не нужно. Прописан адрес, с которого разрешен просмотр через фрэймы, если не совпадает, отправляет по этому адресу. Сам код мне не очень нравится, явно не оптимизирован, но в скриптах я вообще не рабираюсь, главное сейчас работает. Доволен полностью, скоро проверю на практике. Тему пока помечу как решённая.

    Всем спасибо за советы.

Просмотр 8 ответов — с 1 по 8 (всего 8)
  • Тема «Блокировка html-страницы от внешних фрэймов» закрыта для новых ответов.