@Adeptus, smartВ качестве "НЕЧТО" для ботов можно, полагаю, использовать любые события, по реакции на которые можно определить "человек/нечеловек", типа "
onKeyDown/onKeyUp, onMouseDown/onMouseUp, ...". Вот, и если не было ни единой реакции на подобное событие, то это бот. Результаты наблюдений заносить, к примеру, в куки, на сервере проверять их. В самой форме реакции на события не подключать явно, а подключать через отдельный скрипт самому либо с помощью JS-фреймворков (jQuery, Mootools), благо они это позволяют сделать весьма доступно.
Но данный подход может не уберечь от программ, подобных
XRumer'у, так как можно спокойно запрограммировать эти события отрабатываться... сам такое программировал раньше, но для других задач, когда каждые 15 минут надо было в другой комнате на работе нажимать в приходящих сообщениях на кнопку "ОК" -- не буду же я, программист, отвлекаться на такие пустяки!.. сидеть и каждые 15 мин подтверждать дурацкие сообщения... за меня это делала программа