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

Если Вы кликните пять или более раз по блоку DIV с надписью "Кликните здесь 5 раз", то скрипт автоматически заменит значение URL у атрибута action указанной формы на нужный (в нашем случае страничка просто перезагрузится).

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

Как Вы уже могли догадаться из названия темы, для работы нам потребуется подключить библиотеку jQuery. Делается это так:
Пожалуйста, войдите или пройдите Регистрацию чтобы увидеть содержимое "XCODE" BBкода...

Давайте же теперь рассмотрим этот чудо код, который поможет нам запутать ботов спамеров:
Пожалуйста, войдите или пройдите Регистрацию чтобы увидеть содержимое "XCODE" BBкода...

Сама форма для отправки сообщений в нашем случае выглядит так:
Пожалуйста, войдите или пройдите Регистрацию чтобы увидеть содержимое "HTML" BBкода...

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

В том случае если СПАМ стал проходить, то рекомендуем Вам сменить имя файла обработки поступающих данных формы и URL в скрипте соответственно тоже, т.к. его могли вычислить и прописать боту напрямую.

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