Плагины CCode и TCode

Материал из Movable Type Wiki

Перейти к:навигация, поиск

Для защиты от автоматического спама (рассылаемого при помощи ботов) существует множество инструментов, начиная с привычных картинок с вводов цифр, заканчивая различными сервисами. Но все они, во-первых, неудобны для комментатора (требуют дополнительных действий), а во-вторых — не гарантируют 100% защиты.

CCode — это плагин для надёжной защиты от автоматического спама, не требующий от комментатора дополнительных действий. Принцип работы плагина хорошо описал Сергей Петренко:

Одна часть спамбота вылавливает установленные на сайтах формы. Затем эта форма вносится в некую базу - на этом этапе форму может посмотреть человек и определить список обязательных полей. После чего спамбот начинает работать - без всяких посещений страниц, зачем? Делается прямой POST (или GET) запрос к обработчику формы, в котором передаются значения всех обязательных и желательных (например, адрес сайта редко бывает обязательным) полей. Все, собственно. Именно поэтому такими эффективными оказываются плагины типа CCode для Movable Type (кстати, спасибо saahov`у за совет), генерящие уникальный ключ для каждой загрузки формы - они просто в три раза удорожают работу спамбота и делают неэффективной достаточно простую операцию по их обходу. Потому что для каждого постинга через форму с CCode требуется загрузить исходную страницу, достать из нее значение определенного поля и отправить его обработчику. Три операции вместо одной. Дешевле просто выкинуть блог из базы.

Установка плагина

  1. Скачайте плагин с официальной страницы (или с этого сайта). Далее установите его стандартным способом.
  2. После этого необходимо добавить небольшой Javascript-код в ваш шаблон Javascript. Для этого скопируйте из файла default_templates/obfuscator.js код и вставьте его в конец вашего Javascript-шаблона.
  3. Теперь нужно добавить тег плагин в форму комментирования. Найдите эту форму в ваших шаблонах, она может выглядеть так:
<form method="post" action="<$mt:CGIPath$><$mt:CommentScript$>" name="comments_form" id="comments-form" onsubmit="return mtCommentOnSubmit(this)">
        <input type="hidden" name="static" value="1" />
        <input type="hidden" name="entry_id" value="<$mt:EntryID$>" />
        <input type="hidden" name="__lang" value="<$mt:BlogLanguage$>" />
        <input type="hidden" name="parent_id" value="<$mt:CommentParentID$>" id="comment-parent-id" />
        <input type="hidden" name="armor" value="1" />
        <input type="hidden" name="preview" value="" />
        <input type="hidden" name="sid" value="" />
        <div id="comments-open-data">
            <div id="comment-form-name">
                <label for="comment-author">Имя</label>
                <input id="comment-author" name="author" size="30" value="" onfocus="mtCommentFormOnFocus()" />
            </div>
 
<!-- Часть формы вырезана -->
</form>

Вам необходимо добавить после поля <input type="hidden" name="sid" value="" /> тег плагина <mt:EntryCCode />. Пример:

<form method="post" action="<$mt:CGIPath$><$mt:CommentScript$>" name="comments_form" id="comments-form" onsubmit="return mtCommentOnSubmit(this)">
        <input type="hidden" name="static" value="1" />
        <input type="hidden" name="entry_id" value="<$mt:EntryID$>" />
        <input type="hidden" name="__lang" value="<$mt:BlogLanguage$>" />
        <input type="hidden" name="parent_id" value="<$mt:CommentParentID$>" id="comment-parent-id" />
        <input type="hidden" name="armor" value="1" />
        <input type="hidden" name="preview" value="" />
        <input type="hidden" name="sid" value="" />
        <mt:EntryCCode />
        <div id="comments-open-data">
            <div id="comment-form-name">
                <label for="comment-author">Имя</label>
                <input id="comment-author" name="author" size="30" value="" onfocus="mtCommentFormOnFocus()" />
            </div>
 
<!-- Часть формы вырезана -->
</form>

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


Плагин TCode

В архиве также есть плагин TCode для защиты от спама в трекбэках. Если вы не используете трекбэки, то плагин можно не устанавливать или деактивировать его после установки. Для использования необходимо лишь добавить код в Javascript-шаблон, как это показано в примере с CCode.

Навигация
Инструменты