Прозрачных для пользователя защит: две
G_Z 08.03.2006 11:41
/ 08.03.2006 11:51
Принцип один (см. antiflood) - генерация для формы уникального идентификатора, хранение его некоторое время и, при поступлении данных из формы, сверка выданного и полученного.
Обычно хватет одного идентификатора на всю форму.
Можно пойти дальше и сделать более нафороченный вариант:
генерировать столько идентификаторов на форму, сколько полей и заменять все имена полей идентификаторами.
При послуплении данных сверять идентификаторы и преобразовывать обратно в имена полей.
О похожем способе
писал Oleg.
Но этот вариант более накладный в плане времени на генерацию/сверку и хранение идентификаторов.
К тому же, у него есть ещё один недостаток:
поскольку изменяются имена полей формы, то, при вводе данных в поле, браузер не предложит вариантов, ранее введённых в одноимённое поле.
Поэтому нужно самостоятельно эмулировать подобие этой функции и сохранять нужные поля в куках, а потом доставать и подставлять...
По факту того, что вам постят, могу сказать, что сам сталкивался с абсолютно такой же ситуацией.
Спамеры в надежде, что отправленное приходит в почту гадили от всей души.
Ввёл защиту на основе одного идентификатора, с тех пор ни одного козла нагадить не смогло.
Хотя, наверное, не сильно и старались.