-------------------cut-------------------
О защите текстов на вебе
dl // 04.10.07 00:18
Когда несколько месяцев назад litres.ru опубликовал свои планы по
созданию веб-библиотек, дающих только читать книги (обычным броузером
и в текстовом формате, заметьте) и блокирующих скачивание и
копирование, большинство людей, сколько-то разбирающихся в устройстве
веба, просто пожали плечами. Однако ж проект был запущен и за остаток
лета - начало осени в как бы защищенном виде были выложены книги
нескольких популярных авторов. А очередная хвалебная статья о
грамотном и своевременном открытии данного сервиса сподвигла меня
посмотреть поближе, что ж там внутре.
Disclaimer: дальнейшие действия проводились не корысти ради, а токмо
во имя спортивного интереса (выражаясь формально, в целях анализа
стойкости предложенной защиты). Внутре ж оказалась умеренно
навороченная двухуровневая защита от начинающего пользователя. Первый
уровень - набор функций на JavaScript, всячески мешающих копированию
текста, например, путем сбрасывания выделения каждые 10 секунд (сам
текст тоже выводится JS, так что его отключение ни к чему полезному не
приведет). Обходится элементарно путем задания в каком-нибудь
промежуточном фильтре типа AdMuncher'а правила, комментирующего первый
вызов сбрасывающей выделение функции. Этого вполне достаточно для
FireFox, для IE потребуется блокировка еще пары обработчиков событий.
Второй уровень запрятан получше и приводит к тому, что после
copy/paste текста он оказывается разбавлен массой мусорных символов,
приводящих к его полной нечитаемости. Причем скрипт, выводящий текст,
имеет одноразовый url, вызывается из iframe с опять-таки одноразовым
url, так что добраться до его исходников невооруженным глазом
затруднительно (последующие прямые обращения просто ничего не
отдадут). Хотя по-прежнему элементарно для человека, вооруженного
любым анализатором http-пакетов (собственно говоря, при наличии такого
анализатора отпадает и необходимость в copy/paste из окна броузера,
разве что последний вариант чуть более комфортен). Вставка мусора,
проявляющегося только при копировании, реализована достаточно
любопытно - мусорные символы вставляются с помощью блоков <span> со
стилем, отключающим их видимость. Таким образом, при показе текста в
окне броузер их игнорирует, но честно (и глупо) отдает в буфер обмена.
Итог - вся защита оказывается снятой с помощью двух коротеньких правил
AdMuncher'а (аналогичный подарок могут сделать своим пользователям
администраторы прокси-серверов). Строить библиотечный бизнес на таком
хлипком фундаменте - не знаю, не знаю. С другой стороны, электронные
версии книг продаются за столь смешные деньги, что у многих читателей
поневоле возникает позыв отряхнуть со своих ног прах пиратского
прошлого - приятно почувствовать себя добропорядочным гражданином за
такие копейки. Так что психология тут срабатывает надежнее технических
средств. Update: как мне подсказывают, все еще проще - достаточно
воспользоваться FFшным плагином ScrapBook.
--------------------end cut-----------------------
--
BR. Alex
Replying to a message of Alex Skurnick to All:
AS> Update: как мне
AS> подсказывают, все еще проще - достаточно воспользоваться FFшным
AS> плагином ScrapBook.
Кто-нибудь может прокомментировать? А то до меня не дошло - как.
Калачихин Владимир.
Пятница 12 Октября 2007 13:36, ты писал(а) Alex Skurnick:
AS>> Update: как мне
AS>> подсказывают, все еще проще - достаточно воспользоваться FFшным
AS>> плагином ScrapBook.
KV> Кто-нибудь может прокомментировать? А то до меня не дошло - как.
1) ставишь плагин ScrapBook (https://addons.mozilla.org/ru/firefox/addon/427)
2) открываешь текст на литресе
3) говоришь "захватить страницу"
4) захваченную (сохраненную страницу) открываешь этим же ScrapBook, сохраняешь
на диск - и дальше скриптом вычищаешь в html многочисленные span и прочий мусор
>───═══ Куть он "Windows Clipboard" ═══───
Скажите, а<span class="h">оп</span> эти собаки - йоркширские<span
class="h">иж</span> терьеры?</div><div
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:fb="http://www.gribuser.ru/xml/fictionbook/2.0" align="justify">
- Отчасти, <span
>───═══ Куть офф "Windows Clipboard" ═══───
С уважением - Kirill
Давным-давно, *12 Окт 2007* *13:36*, ты имел неосторожность
побеспокоить *Alex Skurnick*.
AS>> Update: как мне
AS>> подсказывают, все еще проще - достаточно воспользоваться FFшным
AS>> плагином ScrapBook.
KV> Кто-нибудь может прокомментировать? А то до меня не дошло - как.
Hе знаю уж, как в ФФ, а в Опере достаточно загрузить кекст и отключить
яваскрипт.
Покеда!
Alex Rex
... [Полиция нравов NiNoNet] [Зиму - давить!]
Hасчет письма от Alexey Tsaryov к Kalachihin Vladimir вот что скажу:
AS>>> Update: как мне
AS>>> подсказывают, все еще проще - достаточно воспользоваться FFшным
AS>>> плагином ScrapBook.
KV>> Кто-нибудь может прокомментировать? А то до меня не дошло - как.
AT> Hе знаю уж, как в ФФ, а в Опере достаточно загрузить кекст и отключить
AT> яваскрипт.
И что особенно хорошо - мусор в span при этом не копируется и вычищать его не
требуется.
amdf00#gmail.com http://amdf.pp.ru
... Hapoднaя Kopпopaтивнaя Pecпyбликa Цapицын Kлacтep
Replying to a message of Kirill Temnenkov to Kalachihin Vladimir:
KT> 1) ставишь плагин ScrapBook
KT> (https://addons.mozilla.org/ru/firefox/addon/427) 2) открываешь
KT> текст на литресе 3) говоришь "захватить страницу" 4) захваченную
KT> (сохраненную страницу) открываешь этим же ScrapBook, сохраняешь на
KT> диск - и дальше скриптом вычищаешь в html многочисленные span и
KT> прочий мусор
А... Hу, это не интересно... Hо страницу он захватывет прикольно, да. Особенно
когда хватаешь не страницу, а только требуемый текст.
Hо собственно, только в удобствах прикол и заключается... Сохранить страницу с
(в целом говоря) ЛитРеса никаких проблем не представляет - для этого есть масса
способов. (Мне, лично, больше всего нравится SmartCache :-) Hо вот лишние
буковки вычищать - всё равно надо скрипт писать. Скрипт, конечно, плёвый, но
вот вставлять его в конкретное окружение для реального использования...
Т.е., я ожидал, что DOM редактор из ScrapBook позволит мне выкинуть все span
class='h' прямо на месте.
Вообще: вот Aardvark - нормальная вещь, но что удалить - только мышой можно
показывать. А казалось бы - есть собственный view source (нормальный, кстати) -
почему нельзя удалять объекты оттуда? Или по поиску?
Калачихин Владимир.
И ещё - я подозревал, что люди из ЛитРес - м...звоны, но когда посмотрел код их
страниц... Hе, проблески есть, но это типичное ламерско-пионерское поделие.
Думаю, не жилец. Во всяком случае, я никого из них на работу не возьму.
Hасчет письма от Kalachihin Vladimir к Kirill Temnenkov вот что скажу:
KV> SmartCache :-) Hо вот лишние буковки вычищать - всё равно надо скрипт
KV> писать. Скрипт, конечно, плёвый, но вот вставлять его в конкретное
KV> окружение для реального использования...
В опере - не надо.
amdf00#gmail.com http://amdf.pp.ru
... Kopпopaтивнaя Opбитaльнaя Pecпyбликa Mopя Яcнocти
Вы писали 12 октября 2007 г., 18:46:27:
KV> Приветствую тебя, Kirill!
KV> Replying to a message of Kirill Temnenkov to Kalachihin Vladimir:
KT>> 1) ставишь плагин ScrapBook
KT>> (https://addons.mozilla.org/ru/firefox/addon/427) 2) открываешь
KT>> текст на литресе 3) говоришь "захватить страницу" 4) захваченную
KT>> (сохраненную страницу) открываешь этим же ScrapBook, сохраняешь на
KT>> диск - и дальше скриптом вычищаешь в html многочисленные span и
KT>> прочий мусор
KV> А... Hу, это не интересно... Hо страницу он захватывет прикольно, да.
KV> Особенно когда
KV> хватаешь не страницу, а только требуемый текст.
KV> Hо собственно, только в удобствах прикол и заключается... Сохранить
KV> страницу с (в целом
KV> говоря) ЛитРеса никаких проблем не представляет - для этого есть масса
KV> способов. (Мне,
KV> лично, больше всего нравится SmartCache :-) Hо вот лишние буковки вычищать
KV> - всё равно
KV> надо скрипт писать. Скрипт, конечно, плёвый, но вот вставлять его в
KV> конкретное окружение
KV> для реального использования...
В FF есть ещё один плаг который здесь можно применить - greasemonkey.
Он позволяет накатывать на загружаемые страницы по фильтру собственные
скрипты. Люди уже тысячи скриптов как общих так и для конкретных
сайтов написали.
ЗЫ: А scrapbook кроме просто сохранения странички умеет ещё как
оффлайн-эксплорер загружать их на заданную глубину начиная от
текущей. Что грузить - можно задать фильтром. Жабаскрипт в нём можно
включить.
--
BR. Alex
Replying to a message of Alex Skurnick to Kalachihin Vladimir:
AS> В FF есть ещё один плаг который здесь можно применить - greasemonkey.
AS> Он позволяет накатывать на загружаемые страницы по фильтру
AS> собственные скрипты.
Да, в сочетании с Platypus! - вообще застрелиться... Главное - освоить :-)
В общем - в принципе нет проблем сохранять текст с ЛитРеса в человеческом виде
автоматически. Создав желаемый скрипт самому с помощью Platypus! или взяв
готовый. Hо - в процесе просмотра.
Калачихин Владимир.