CAPTCHAs

ExpressionEngine поддерживает так называемый тест "CAPTCHA", или полностью автоматический тест Тьюринга для различения компьютеров и людей. Иными словами, это тест, который легко проходит человек, но который невозможно (или крайне трудно) пройти компьютерной программе. CAPTCHA обычно используется, для того, чтобы препятствовать автоматизированным ботам, рассылать спам в комментарии или подписываться на веб службы. Yahoo, например, использует CAPTCHA, при регистрации вашей учетной записи.

Так, как же работает CAPTCHA? Для пользователя, загружающего веб страницу, в режиме реального времени генерируется изображение. Это изображение содержит слово, которое пользователь должен ввести в форму. Этот способ достаточно эффективен, так как автоматизированные сценарии не могут считать слово, изображенное на картинке, а люди делают это без проблем. Конечно, существует программное обеспечение оптического распознавания, которое может применяться для обхода CAPTCHA, но эта технология может быть легко введена в заблуждение, внесением дополнительных искажений в изображение.

В ExpressionEngine, CAPTCHA может использоваться в нескольких местах:

  1. Форма комментариев раздела
  2. Форма комментариев галереи изображений
  3. Форма регистрации пользователя
  4. Почтовые формы tell-a-friend и contact

Форма комментариев

Чтобы использовать CAPTCHA в форме комментариев, вам сначала необходимо включить соответствующую настройку. В секции Admin, панели управления, перейдите на страницу управление разделами и найдите настройку "Использовать CAPTCHA при публикации комментариев?" Установите в настройке "Да".

После включения настройки вам необходимо добавить код CAPTCHA в ваш тег {exp:comment:form} формы отправки комментариев. Смотрите ниже для просмотра фактического кода.

Форма комментариев галереи изображений

Для того чтобы использовать CAPTCHA в форме комментариев галереи изображений, вы должны сначала включить соответствующую настройку. В панели управления перейдите на страницу Модули > Галерея изображений > [ваша галерея] > Настройки и найдите настройку "Использовать CAPTCHA при публикации комментариев?" Установите в настройке "Да".

После включения настройки вы должны добавить код CAPTCHA в ваш тег {exp:gallery:comment_form} формы отправки комментариев. Смотрите ниже для просмотра фактического кода.

Форма регистрации пользователя

Для использования CAPTCHA в форме регистрации пользователей, вы должны сначала включить соответствующую настройку. В секции Admin, панели управления, перейдите на страницу настройки пользователей и найдите настройку "Включить контрольное слово (Captcha) при регистрации?" Установите в настройке "Да".

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

Почтовые формы tell-a-friend и contact

Обе почтовые формы tell-a-friend и contact, могут использовать CAPTCHA. Для использование CAPTCHA в них, вы должны сначала включить соответствующую настройку. В секции Admin, панели управления, перейдите на страницу настройки системы щелкните настройки электронной почты и найдите настройку "Включить CAPTCHA для почтовых форм tell-a-friend и contact". Установите в настройке "Да".

Код CAPTCHA

В формах комментариев разделов и галереи изображений используется одинаковый код:

{if captcha}

<p>Please enter the word you see in the image below:</p>

<p>{captcha}<br />
<input type="text" name="captcha" value="{captcha_word}" size="20" maxlength="20" style="width:140px;" /></p>

{/if}

Содержимое условного выражения ({if captcha}) будет обрабатываться, если вы включили CAPTCHA для любой из форм, - комментариев или регистрации пользователей.

Код, который используется в форме регистрации пользователей, похож на код, приведенный выше, только без переменной {captcha_word}:

{if captcha}

<p>Please enter the word you see in the image below:</p>

<p>{captcha}<br />
<input type="text" name="captcha" value="" size="20" maxlength="20" style="width:140px;" /></p>

{/if}

Примечания

Важно отметить, что есть отрицательные стороны использования CAPTCHA. Успешно препятствуя автоматизированным ботам отправлять комментарии и регистрироваться как пользователям, CAPTCHA, в тоже время ограничивает слепых пользователей или пользователей со слабым зрением, посещающих ваш сайт. Если вы будете использовать CAPTCHA, помните, что этим вы очень затрудните легитимным пользователям использование вашего сайта.

Вы должны сами определиться, действительно ли CAPTCHA нужна в вашей ситуации и подходит для целевой аудитории вашего веб сайта.

Кроме того, ваш сервер должен иметь поддержку библиотеки обработки изображений GD (или GD 2) для работы CAPTCHA.

Для ExpressionEngine, установленной на нескольких доменах или субдоменах, вам, возможно, необходимо будет указать путь на сервере для настройки "Путь на сервере к папке Captcha", которую можно найти на странице Admin > Настройки контрольного слова. Путь на сервере, обычно, похож на приведенный ниже /home/domain.com/http_docs/images/captchas/. Эта настройка изменяется от сервера к серверу, поэтому, в случае затруднений, обратитесь к администратору вашего сервера, чтобы определить, каков ваш правильный "путь на сервере".

Если ваш сервер не поддерживает работу со шрифтами True Type в PHP, то вы должны отключить использование шрифтов True Type на странице Admin > Настройки контрольного слова.

Специальные файлы CAPTCHA

Система CAPTCHA использует несколько специальных файлов внутри системной директории:

  1. system/fonts/texb.ttf Это шрифт True Type, который система CAPTCHA будет использовать, для корректного создания файлов изображений. Вы не должны изменять этот файл.
  2. system/lib/words.php - Список слов, из которых будет выбрано слово для создания CAPTCHA. Вы можете изменить список, но при этом должны гарантировать, что общее количество слов не уменьшилось.

Наверх страницы