Защита сайта от копирования


Как защитить свой сайт от (копирования) плагиата и воровства.

Вот и наступила новая эра, и вместе с ней появились новые виды преступной деятельности.

Как защитить сайт от копирования

Как защитить сайт от копирования

Я бы возможно и не стал так глубоко погружаться в эту тему, но наглый копипаст, просто не мог оставить меня равнодушным.

     Part.1 Хмурое утро.

Сегодня утром, приехав с дачи (где хорошенько поработав отдохнув),  я совершенно неожиданно для себя обнаружил, что на одном сайте появилась моя статья о защите админки WordPress файлом .htaccess. Естественно без ссылки на источник! Правда имеющая две внутренние ссылки на страницы моего блога. Но больше всего меня удивил тот факт, что изображения статьи ее автор  копимастерпастер брал (загружал) прямо с моего сервера.

Конечно у хостенко хорошая пропускная способность и неограниченный трафик, но если сам факт кражи будет не единичным, то беспонтовую нагрузку на свой хостинг, я тоже не могу допустить.

Как можно размещать статью о защите сайта на WordPress от взлома, когда сам не понимаешь его основ? Больше всего меня удивил тот факт, что админка того сайта не защищена вообще, ни плагинами, ни уж тем более файлом .htaccess.

Про логин и почту я вообще молчу…?!

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

     Первая мысль, которая пришла мне в голову,  это удалить статью из БД и оставить предупреждение добавить в картинки JavaScript, и протестировать тот веб ресурс на возможность XSS инъекции. Но данный баг уже наверное давно закрыт, во всяком случае он работал только с iexplorer ранних версий.

Поэтому я решил проверить другой метод, и добавил в jpeg картинку PHP код, используя  WinHex редактор. Багу протестировал на localhost, предварительно добавив в .htaccess строку:

AddHandler application/x-httpd-php .jpg .png

Данная инструкция говорит серверу, что файлы с jpg и png расширением, должны обрабатываться, как PHP скрипты.

В итоге PHP код выполнился успешно! Но по большому счету, мне это тоже ничего не дало. :(

Поэтому я не стал больше заморачиваться, тратя свое время на поиск уязвимостей  в jpeg и png изображениях.

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

Ну, да ладно, ближе к сути.

Как защитить картинки от HotLink (хотлинк) воровства

   Сам HotLink подразумевает подключение изображений, которые публикуются на сайте, с другого хостинга. Тем самым понижая пропускную способность того сервера, без потерь для своего. Что не есть гуд, с любой точки зрения.

Поэтому хотлинк, в первую очередь, представляет угрозу для производительности сервера, на котором располагается ваш интернет проект.

Для WordPress существует плагин WordPress Hotlink protection. Но, если честно я его не пробовал устанавливать, ведь то, что он делает можно написать самостоятельно в .htaccess. Хотя для чистоты эксперимента, обязательно установлю его на localhost и посмотрю,  что пишет он. 😉

В общем, суть защиты от hotlink сводится к использованию регулярных выражений .htaccess:

RewriteEngine on

#включаем mod_rewrite, как обычно :)

RewriteCond %{HTTP_REFERER} !^http://(.+\.)?master-it.biz [NC]

# переменная %{HTTP_REFERER} проверяет реферала

# флаг [NC] позволяет не учитывать регистр букв

RewriteCond %{HTTP_USER_AGENT}

# переменная %{HTTP_USER_AGENT} проверяет User Agent’а

RewriteRule .(jpg|jpeg|png|gif|zip)$ — [NC,F,L]

# RewriteRule выполняет условия преобразования

# флаг [F] запрещает доступ (forbidden)

# флаг [L]  (last)  останавливает дальнейший анализ директив

В итоге, у меня получился такой код:

RewriteCond %{HTTP_REFERER} !^http://(.+\.)?master-it.biz [NC]

RewriteCond %{HTTP_USER_AGENT} !Googlebot [NC]

RewriteCond %{HTTP_USER_AGENT} !YandexBot [NC]

RewriteRule .(jpg|jpeg|png|gif)$ — [NC,F,L]

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

RewriteRule .(jpg|jpeg|png|gif)$ /путь_к_картинке/ass.jpg [L]

     Естественно опытный веб мастер, сможет подделать юзер агента, или достать картинку из кеша браузера. А тот JavaScript, который отключает правую кнопку мыши, не давая копировать текст статьи, тоже работает до того момента, пока в браузере включен, тот самый JavaScript.

   Поэтому оптимальный способом защиты сайта от копирования в целом, и контента от воровства в частности, является подтверждение авторства в Google и Яндекс инструментах для веб мастеров. А также общий траст, ускоренная индексация и лояльность со стороны поисковых систем, по отношению к  интернет ресурсу. Для чистоты эксперимента, я планирую разместить кнопку от Copyscape, на своем блоге. Но тема уязвимости jpg и прочих изображений, для меня осталась не закрытой. 😉

P.S. Все таки иногда, лучшим способом защиты, является нападение, и тогда синонимом молчания, становится отчаяние. :)

Part.2 Время. Путешествие в четвертом измерении.

   После того, как я отправил мессагу копимастеру, и немногим позже сбросил пароль на email, тот в свою очередь, принял правильное решение, и в конце статьи поставил ссылку на источник.

А весь прикол заключается в том, что ‘его’ статьи датируется аж 10 июля 2012 года, когда дата создания источника поста 11 декабря 2012 года.

Вот такое получилось  путешествие в четвертом измерении.)

P.S.y. Конечно я применил не совсем ортодоксальный подход к защите сайта от копирования, но иногда для решения определенного вопроса, необходимо взглянуть на вещи под другим углом. Ведь даже в чем-то очень плохом, всегда можно найти, нечто хорошее. Если хорошо поискать. 😉

В данном случае, от беспардонного копирования я поимел аж три индексируемые ссылки на свой ресурс. Что в очередной раз доказывает большую пользу от внутренней перелинковки.

З.Ы. Кстати, у меня появилась новая статья, в которой описывается реальная защита текста сайта от копирования, с помощью JavaScript, и есть возможность скачать исходник JS. :)