Итак, как не нужно защищать текст и картинки.
Самым распространенным методом защиты копирования картинок и грабежа текста был и остается Java-скрипт, перехватывающий click и возвращающий false, если event.button == 2.
В простейшем случае исходный текст этой "защиты" выглядит так:
Код
Если же после выделения текста не трогать мышь, а нажать <CTRL-Ins>, <CTRL-C> или обратится к пункту "копировать" меню "правка", то несмотря ни на какие защиты, текст (и даже изображение!) будут успешно скопированы в буфер обмена, откуда их (естественно, по раздельности) можно вставить в текстовый и графический редактор, соответственно.
Кстати, если в последних версиях IE подвести к картинке мышь и некоторое время ее не двигать, возникнет панель инструментов с изображением "дискетки", сохраняющей изображение, несмотря ни на какие скрипты.
Хорошо, давайте усилим защиту и напишем скрипт, запрещающий не только контекстное меню, но еще и выделение текста, причем не только мышью, но и по комбинации <CTRL-A>, соответствующей пункту меню Правка -> Выделить все:
<HEAD> <SCRIPT language=JavaScript> function click(x) { if (document.all) { if (event.button == 2) { alert("this operation isn't allowed"); return false; } } } document.onmousedown=click; </SCRIPT> </HEAD> <BODY> |
Если же после выделения текста не трогать мышь, а нажать <CTRL-Ins>, <CTRL-C> или обратится к пункту "копировать" меню "правка", то несмотря ни на какие защиты, текст (и даже изображение!) будут успешно скопированы в буфер обмена, откуда их (естественно, по раздельности) можно вставить в текстовый и графический редактор, соответственно.
Кстати, если в последних версиях IE подвести к картинке мышь и некоторое время ее не двигать, возникнет панель инструментов с изображением "дискетки", сохраняющей изображение, несмотря ни на какие скрипты.
Хорошо, давайте усилим защиту и напишем скрипт, запрещающий не только контекстное меню, но еще и выделение текста, причем не только мышью, но и по комбинации <CTRL-A>, соответствующей пункту меню Правка -> Выделить все:
Код
Проверка показывает, что мышь действительно "отдыхает", пункты "выделить", "копировать" и "вставить" заблокированы, а "выделить все" хоть и не заблокировано, но не работает. Как и контекстное меню, вызываемое по <SHIF-F10> или клавишей, расположенной слева от правой кнопки <CTRL>.
Однако торжествовать победу еще рано. Во-первых, панель инструментов, возникающая при наведении мышью на картинку, по-прежнему исправно работает, а во-вторых, пользователь может отключить Java-скрипты, возвращая своему любимому браузеру всю его функциональность.
Раз наша защита построена на скриптах, необходимо проектировать страницу так, чтобы без скриптов она отображалась не полностью или вообще не отображалась совсем. Проще всего использовать конструкцию "<script>document.write("text");</script>", конкретное воплощение которой может выглядеть, например, так:
<SCRIPT LANGUAGE="JavaScript"> document.ondragstart = ops; document.onselectstart = ops; document.oncontextmenu = ops; function ops() { return false; } </SCRIPT> |
Проверка показывает, что мышь действительно "отдыхает", пункты "выделить", "копировать" и "вставить" заблокированы, а "выделить все" хоть и не заблокировано, но не работает. Как и контекстное меню, вызываемое по <SHIF-F10> или клавишей, расположенной слева от правой кнопки <CTRL>.
Однако торжествовать победу еще рано. Во-первых, панель инструментов, возникающая при наведении мышью на картинку, по-прежнему исправно работает, а во-вторых, пользователь может отключить Java-скрипты, возвращая своему любимому браузеру всю его функциональность.
Раз наша защита построена на скриптах, необходимо проектировать страницу так, чтобы без скриптов она отображалась не полностью или вообще не отображалась совсем. Проще всего использовать конструкцию "<script>document.write("text");</script>", конкретное воплощение которой может выглядеть, например, так:
Код
Листинг 3. Вывод содержимого сайта через скрипты и, как следствие, препятствующий их отключению.
Ладно, с текстом мы более или менее разобрались. А как быть с картинками?! Некоторые разрезают одну картинку на множество мелких частей, наивно полагая, что пользователю будет лень сохранить пару десятков фрагментов, а затем подгонять их в текстовом редакторе. Но... тут выясняется, что: а) особенности формата jpg приводят к тому, что края разрезанной картинки уже не стыкуются и приходится либо уменьшать степень сжатия, либо переходить на png, но и то, и другое ведет к росту трафика и замедлению загрузки; б) браузеры очень плохо справляются со склейкой картинок и очень часто возникают "артефакты" в виде пустых линий или наложения картинок друг на друга (особенно, если пользователь смотрит страничку с нестандартным настройками браузера типа разрешения, масштаба и т.д.); в) клавиша "print screen" делает грабеж картинки простым и приятным.
Также не стоит использовать картинки в виде флеш-изображений. Их уже научились сохранять даже начинающие пользователи, а многие менеджеры закачек делают это автоматически.
Сложнее бороться с сохранением страницы на диск. Некоторые браузеры содержат ошибки, приводящие к невозможности сохранения при нарушении структуры HTML (например, если пропущен закрывающий тег </HTML>), при этом сама страница отображается вполне нормально, но... никаких гарантий, что остальные браузеры поведут себя точно также, у нас нет. Зато вполне оправдывает себя прием "разрезания" текстового содержимого на кусочки по 1-2 кб. Читать страницу (в интерактивном режиме) вполне возможно и даже нельзя сказать, чтобы сильно затруднительно (хотя постоянно нажимать на ссылку "далее", конечно, быстро надоедает), а вот собрать из всех сохраненных страничек исходную статью - это же сколько труда нужно затратить!!!
Кстати, если по каким-то причинам страница не сохраняется на диск, можно открыть ее в MS Word и сохранить на диск либо как html, либо как doc. Вместе с картинками, таблицами, и другими элементами. Если же это не получается и Word с грохотом падает, имеет смысл попытаться выделить наиболее значимую часть страницы и вставить ее в Word через буфер обмена. В 99% случаев это срабатывает!
<script>document.write ("Данный перевод (ввиду нехватки времени) является чисто техническим с рядом литературным огрехов, которых у меня не хватило времени исправить. Нумерация статей с оригиналом может не совпадать. Все комментарии в фигурных скобках - это замечания переводчика");</script> |
Ладно, с текстом мы более или менее разобрались. А как быть с картинками?! Некоторые разрезают одну картинку на множество мелких частей, наивно полагая, что пользователю будет лень сохранить пару десятков фрагментов, а затем подгонять их в текстовом редакторе. Но... тут выясняется, что: а) особенности формата jpg приводят к тому, что края разрезанной картинки уже не стыкуются и приходится либо уменьшать степень сжатия, либо переходить на png, но и то, и другое ведет к росту трафика и замедлению загрузки; б) браузеры очень плохо справляются со склейкой картинок и очень часто возникают "артефакты" в виде пустых линий или наложения картинок друг на друга (особенно, если пользователь смотрит страничку с нестандартным настройками браузера типа разрешения, масштаба и т.д.); в) клавиша "print screen" делает грабеж картинки простым и приятным.
Также не стоит использовать картинки в виде флеш-изображений. Их уже научились сохранять даже начинающие пользователи, а многие менеджеры закачек делают это автоматически.
Сложнее бороться с сохранением страницы на диск. Некоторые браузеры содержат ошибки, приводящие к невозможности сохранения при нарушении структуры HTML (например, если пропущен закрывающий тег </HTML>), при этом сама страница отображается вполне нормально, но... никаких гарантий, что остальные браузеры поведут себя точно также, у нас нет. Зато вполне оправдывает себя прием "разрезания" текстового содержимого на кусочки по 1-2 кб. Читать страницу (в интерактивном режиме) вполне возможно и даже нельзя сказать, чтобы сильно затруднительно (хотя постоянно нажимать на ссылку "далее", конечно, быстро надоедает), а вот собрать из всех сохраненных страничек исходную статью - это же сколько труда нужно затратить!!!
Кстати, если по каким-то причинам страница не сохраняется на диск, можно открыть ее в MS Word и сохранить на диск либо как html, либо как doc. Вместе с картинками, таблицами, и другими элементами. Если же это не получается и Word с грохотом падает, имеет смысл попытаться выделить наиболее значимую часть страницы и вставить ее в Word через буфер обмена. В 99% случаев это срабатывает!
Текст защищаю через яндекс-вебмастер - Оригинальные тексты, на сколько это работает не знаю, но верится.
Фигня всё это, защита от дилетантов, которая только сайт нагружает и снижает индексацию поисковыми системами.
Кстати, у меня из-за такой защиты один сайт под АГС попал :(
Пока Яндекс не вы*лся АГС этих не было.