О защите текстов на вебе
dl // 04.10.07 00:18
Когда несколько месяцев назад litres.ru опубликовал свои планы по созданию веб-библиотек, дающих только читать книги (обычным броузером и в текстовом формате, заметьте) и блокирующих скачивание и копирование, большинство людей, сколько-то разбирающихся в устройстве веба, просто пожали плечами.
[Не забывайте при копировании материала указывать полный адрес источника: //bugtraq.ru/rsn/archive/2007/10/02.html]
Однако ж проект был запущен и за остаток лета - начало осени в как бы защищенном виде были выложены книги нескольких популярных авторов. А очередная хвалебная статья о грамотном и своевременном открытии данного сервиса сподвигла меня посмотреть поближе, что ж там внутре.
Disclaimer: дальнейшие действия проводились не корысти ради, а токмо во имя спортивного интереса (выражаясь формально, в целях анализа стойкости предложенной защиты).
Внутре ж оказалась умеренно навороченная двухуровневая защита от начинающего пользователя. Первый уровень - набор функций на JavaScript, всячески мешающих копированию текста, например, путем сбрасывания выделения каждые 10 секунд (сам текст тоже выводится JS, так что его отключение ни к чему полезному не приведет). Обходится элементарно путем задания в каком-нибудь промежуточном фильтре типа AdMuncher'а правила, комментирующего первый вызов сбрасывающей выделение функции. Этого вполне достаточно для FireFox, для IE потребуется блокировка еще пары обработчиков событий.
Второй уровень запрятан получше и приводит к тому, что после copy/paste текста он оказывается разбавлен массой мусорных символов, приводящих к его полной нечитаемости. Причем скрипт, выводящий текст, имеет одноразовый url, вызывается из iframe с опять-таки одноразовым url, так что добраться до его исходников невооруженным глазом затруднительно (последующие прямые обращения просто ничего не отдадут). Хотя по-прежнему элементарно для человека, вооруженного любым анализатором http-пакетов (собственно говоря, при наличии такого анализатора отпадает и необходимость в copy/paste из окна броузера, разве что последний вариант чуть более комфортен).
Вставка мусора, проявляющегося только при копировании, реализована достаточно любопытно - мусорные символы вставляются с помощью блоков <span> со стилем, отключающим их видимость. Таким образом, при показе текста в окне броузер их игнорирует, но честно (и глупо) отдает в буфер обмена.
Итог - вся защита оказывается снятой с помощью двух коротеньких правил AdMuncher'а (аналогичный подарок могут сделать своим пользователям администраторы прокси-серверов). Строить библиотечный бизнес на таком хлипком фундаменте - не знаю, не знаю. С другой стороны, электронные версии книг продаются за столь смешные деньги, что у многих читателей поневоле возникает позыв отряхнуть со своих ног прах пиратского прошлого - приятно почувствовать себя добропорядочным гражданином за такие копейки. Так что психология тут срабатывает надежнее технических средств.
Update: как мне подсказывают, все еще проще - достаточно воспользоваться FFшным плагином ScrapBook.