Защита информации на веб-странице

Тонкости современной web-архитектуры. Новые концепции и опыт web-дизайна. Теория и практика создания сайтов. Ошибки и их анализ

HTML,CSS,DHTML,JavaScript,сайт,web,дизайн,веб-дизайн,web-дизайн,web-design,web development, контент,верстка,цвет,site, тэги,юзабилити,PHP,статьи,скрипты,советы, хитрости, тонкости, секреты, анализ, создание сайта, продвижение сайта, оптимизация сайта,регистрация сайта,раскрутка, поисковые системы, ключевые слова, обмен ссылками, пособия, документация, исходники, книги, справочник, справка, руководство, учебник, правила, законы, примеры, обучение, изучение, ресурсы,форум,web-эксперимент,веб-эксперимент

Статьи по web-дизайну, JavaScript, HTML, CSS (советы,секреты,хитрости) Дизайн веб сайтов, обучение веб-дизайну, создание сайта (учебник) Веб-дизайн (обмен ссылками, раскрутка и продвижение сайта, повышаем индекс цитирования) Web-дизайн: статьи, скрипты, учебник, советы, программы Все для web-дизайна, основы web-дизайна, уроки web-дизайна, обучение web-дизайну Статьи по веб-дизайну, секреты JavaScript, учебник HTML, хитрости CSS веб дизайн журнал для веб-мастеров
http://experiment.h11.ru
Начало  •   Чтиво  •   Форум  •   О проекте  •   Ссылки
® 
§10. Защита информации на веб-странице
Readonly forever

Написать эту статью меня натолкнула строчка, <body oncopy="return false">, которая защищает содержимое страницы от копирования.
"Неужели все так просто" — подумал я. Но разобравшись, я понял, что защищает она только от чайников, которые не знают — что такое ViewSource, и пользуются только IE. Потом, я нашел парочку скриптов, которые запрещали правый клик мышкой, лишая чайника контекстного меню. Но есть "главное меню", и там все продублировано...
Как тут быть?

Как защитить информацию на веб-странице?
"И тут Остапа понесло..."

Что-бы Вас заинтересовать, попробуйте скопировать что либо с этой страницы → эта страница.

Поставленная задача?
  • Во-первых — защитить код. (с исходного кода всегда можно выделить нужную информацию)
  • Во-вторых — защитить объекты на странице, т.е. они должны быть видимыми, но не копируемыми.
  • В третьих — все это должно работать во всех браузерах, иначе есть риск ничего не увидеть (или увидеть абракадабру).

При всем при этом нужно предусмотреть вариант скачивания страницы через ФТП и обезопасить страницу от этого.

Что можно защищать?
  1. В стране, где слово "CopyRight" почти ничего не значит, авторскую информацию нужно защищать всеми доступными методами.
  2. Картинки, рисунки и другие графические объекты.
  3. Написанный вами скрипт, на который вы потратили три бессонных ночи, и который хотите презентовать только у себя на сайте
  4. Книги on-line...


Как это сделать?
Этап 1:
Создаем скрипт, который защитит объекты страницы (текст, графика) от копирования.

<script>

var bbb=1;

function rf(){ return false }    //эта ф-ция не дает событию исполнится

//определяем действия для Netscape
if(document.layers || (window.captureEvents && !(document.all))){
  document.captureEvents(Event.MOUSEDOWN);
  document.onmousedown=rf;
  self.blur()      //убираем фокус со страницы (делаем невозможным выделение текста)
  bbb=2;
  }

//определяем действия для Opera
else if (window.captureEvents){
  document.write("<input type=Text style='visibility:hidden;position:absolute' id=ht onblur='this.focus()'>");
  ht.focus();      //убираем фокус со страницы и даем его скрытому полю ввода
}

//определяем действия для IE
else if(document.all)
  document.onselectstart=rf;      //запрещаем выделение текста в IE

document.oncontextmenu=rf;      //отключаем контекстное меню в IE и Netscape

//проверка имени сервера страницы, открывшего данную
if(window.opener!=undefined&&window.opener.location.host==location.host&&location.host!='') bbb=0;

</script>

//запрет вывода, если имена серверов не совпадают
<script>
if(bbb==2) self.close();
if(bbb!=0) document.write("<div style='display:none'><noscript>");
</script>

!!! Именно последних пару строчек кода делают невозможным:

  1. отображать вашу страницу не на вашем сервере
  2. отображать вашу страницу с других ссылок
  3. отображать вашу страницу локально на компьютере (если она, например, была скачана через ФТП)
Особенности...

Нюанс1: страница должна иметь запрет на кеширование (а то догадливые могут найти некоторые рисунки в файлах, кешированих броузером).
Это можно сделать так:
<meta http-equiv="Cache-Control" content="no-cache">

Нюанс2: графические объекты должны отображаться как фон некоторого контейнера (тега).
Напр.: <div style="background:url(img.jpg) no-repeat; width:500; height:404;" title="Рисунок"></div>
вместо <img src="img.jpg" width="500" height="404" alt="Рисунок" border="0">

Нюанс3: для более надежной безопасности ссылка открывающая защищенную страницу должна иметь примерно вот такой вид:
<a href="#" onClick="self.open('page.html', 'testwin', 'toolbar=0,location=0,directories=0,menubar=0,status=1,scrollbars=1,resizable=1')">защищенная страница</a>

Этап 2:
Шифруем код страницы.
На стадии шифрования Вы можете использовать любые алгоритмы и хитрости.

Основная схема шифровки выглядит так:

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

    Свой шифратор я сделал в таком видеШифратор.

    Функция расшифровки — самое уязвимое место. Через нее можно понять алгоритм шифрования и раскодировать шифр. Хотя для этого понадобятся хорошие знания программирования и JavaScript-спецификации.

    Статистика: 99 посетителей не сможет извлечь требуемую информацию, НО найдется один, который не пожалеет денька и расшифрует вашу страничку.

    Рекомендация: не стоит таким образом защищать жизненно важную информацию, от которой зависит Ваша судьба или судьба Ваших близких.

    Недостатки:

  • не работает без JavaScript
  • при шифровании, иногда, объем файла увеличивается (с моим методом шифрации — в 3 раза!!!)
  • уязвимость перед взломом (как и все программы)

    Альтернатива: технология Flash.

    Выводы
    Все это, конечно, заслуживает внимания, но не стоит забывать что актуальность методов в этой статье временна. Через год-два данные механизмы могут не работать (напр. в каких-то новых популярных броузерах), а возможно появятся новые способы защиты, на порядок превосходящие этот.
    Поэтому не забудьте посмотреть на дату создания.

    Создано: 1.10.2004
    Автор: Stipuha


     
     
     ? 
    А я думаю так:



    Другие мнения...

    → что-бы высвечивалось Ваше имя (как автора мнения) — зарегистрируйтесь
     
    0205 Автор: Stipuha 07.02.2005 21:10
      Я рассмотрел ваши впредложения и слегка усовершенствовал алгоритм защиты.
    Если есть еще какие-то глупые дыры -- сообщайте...
     
    0176 Автор: Неизвестный 27.12.2004 13:22
      Все выдирается на ура но идея нечего
     
    0174 Автор: Неизвестный 23.12.2004 17:16
      Это бред все, картинку можно выдрать сделав принтскрин. а можно еще проще просмотрев что броузер просит у сервера. А текст даже если ты его в имидж превратиш можно загнать всегда в файнридер и распознать через тот же принтскрин.
     
    0109 Автор: Неизвестный 29.11.2004 13:38
      Идеи конечно у всех хорошие, но все шифрования и попытка скрыть скрипт и обезопасить картинку от скачивания абсолютно не имеют смысла. При кешировании данных не нужно быть супер-хакером, хакером, продвинутым юзером или обладать еще каким-либо почетным титулом, чтобы просмотреть код страницы через любой текстовый редактор в папке Temporary Internet Files, там же находится и картинка :))
     
    0087 Автор: Stipuha 02.11.2004 19:16
      :)
     
    0085 Автор: Неизвестный 01.11.2004 20:21
      У вас всех крыша съехала на почве защиты своих сиюминутных текстовых творений текстов и элементарных скриптов.
     
    0077 Автор: Lain 26.10.2004 17:08
      День добрый. Я, в общем-то, полный ламер :), так что о методах шифрации ничего сказать не могу. Насчет тестовой странички:
    Картинка выдирается наведением мыши, затем щелчком по дискетке (IE);
    Текст — File/Save as, сохраняем как текст (там же);
    Насчет скрипта с часами — эх, знать бы что это вообще такое, может, тоже бы забрала :)
     
    0073 Автор: VanGog 15.10.2004 08:45
      Да там нет ничего сложного. Предлагаю вам сделать другой шифровщик, более сложный. Уверен, что и его можно легко будет расшифровать. К тому же зашифрованная страница, особенно если большая, может загружаться очень долго (секунд 10-15), поэтому этот вариант не подходит.
     
    0072 Автор: Stipuha 14.10.2004 19:29
      Если Вы все таки сумели расшифровать код — поздравляю, у вас хороший уровень знаний ЯваСкрипт. Можете придумать свой более сложный.
    Также можете сообщить сюда, какой-то одной строчкой из зашифрованного файла.

    Внимание: Шифровщик на эХперименте — это лишь демонстрационный пример, не претендующий на звание "лучший шифровщик" и код его не является тайной.
     
    0071 Автор: VanGog 14.10.2004 19:17
      Мое мнение: шифратор неплохой (ламеры не осилят), но обычным пользователем расшифровывается за несколько минут.
     
    0068 Автор: Неизвестный 11.10.2004 13:21
      н-даа, зашибезно...
    мне только рисунок удалось выдрать оттуда...
     
  •  
    Дата последнего обновления 20.10.2004
    Поиск по сайту:
    Web-Дизайн — Степан Иванович
    © 2003-2004

        Rambler's Top100