Защита форм и предотвращение спама является не менее важной задачей, чем сам процесс создания этих веб-приложений. Разработчики команды ChronEngine в своем компоненте Cronoforms 5 предлагают довольно широкий набор функционала для этих целей. Инструмент Security Question - один из таких методов обеспечения безопасности проектов.

Механизм его действия заключается в следующем:

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

Установка и настройка Security Question на формах Chronoforms 5

Установка и настройка Security Question на формах Chronoforms 5 включает два основных этапа.

Первый этап заключается в  размещении на форме визуального элемента «Security Question». Для этого нужно  во вкладке «Дизайнер» (Designer)  открыть список группы «Advanced» (слева), выбрать элемент «Security Question» и перетащить его мышью в соответствующее место на форме (см. рис. 1). Обычно такие элементы расположены выше кнопки отправки.

Расположение элемента «Security Question» на формах Chronoforms 5

Рис. 1

Чаще всего, производить его донастройку не требуется. Но если такая необходимость возникла, окно редактирования открывается по нажатию на кнопку «Редактировать» (Edit) (см. рис. 2).

Окно редактирования настроек элемента «Security Question» на формах Chronoforms 5

Рис. 2

Второй этап установки проверочного вопроса осуществляется на стороне сервера, во вкладке «Установка» (Install) путем размещения элементов «Load Security Question» и «Check Security Question» в областях событий.

Функция  «Load Security Question»  рандомно загружает пару «вопрос — ответ» из созданного в ходе ее настройки списка.  Для установки ее нужно взять из группы «Anti Spam» и перетащить мышью в область события «On load» формы (см. рис. 3). 

Этот обработчик всегда размещается только в теле события «On load».

Установка элементов «Load Security Question» и «Check Security Question» в качестве обработчиков событий форм Chronoforms 5

Рис. 3

Чтобы создать список пар «вопрос=ответ», нужно открыть интерфейс функции для редактирования  и заполнить многострочное поле «Вопросы=Ответы» (Questions=Answers). Пример приведен на рисунке 4, но вы можете представить любые свои вопросы и ответы. 

Редактирование настроек обработчика «Load Security Question» на формах Chronoforms 5

Рис. 4

Теперь нужно обеспечить проверку ответа пользователя.

Для этого следует поместить элемент «Check Security Question», находящийся в группе «Anti Spam», в область события «On Submit» так, чтобы он располагался выше всех остальных обработчиков.

Функция «Check Security Question» всегда должна находиться в области события «On Submit».

В случае отрицательного результата проверки ответа пользователя дальнейшую обработку формы следует прервать и предотвратить ее отправку на сервер. Для этого нужно поместить в теле собственного события  «On fail» элемента «Check Security Question» функцию «Event Loop», как показано на рисунке 3. Чаще всего, ее донастройка не требуется.

Собственно окно настроек «Check Security Question» имеет только одно поле — «Ошибка» (Error), куда вводится соответствующий текст.

Редактирование настроек обработчика «Check Security Question» на формах Chronoforms 5

Рис. 5

Здесь важно отметить, что без предварительных правок кода соответствующих файлов компонента, кириллица в парах «вопрос-ответ» не поддерживается.

Если все три, описанных выше элемента («Security Question» , «Load Security Question» и «Check Security Question»), расположены на форме и настроены правильно, то инструмент «Security Question» отображается при загрузке формы и корректно работает.

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