Яке завдання вирішує капча? Здається, відповідь очевидна: значно ускладнює автоматизований спам сайту або накрутку лічильників. Але одночасно капча - це презумпція винності: користувач, ти бот і спамер, доведи сайту, що це неправда. Це перекладання проблем програмістів на плечі користувачів: ми нічого не змогли придумати, щоб запобігти спам на сайті, тому вирішуйте проблему самі - вводите капчу.
Для програміста капча виглядає, як срібна куля, але для користувача вона виглядає так:
Як же вижити без страшної капчи, що не потонувши в море спаму, накручені лічильників і зламаних учёток? Зізнаюся, у мене немає універсального рецепта і, швидше за все, його немає в принципі.
Зате є методика боротьби з ботами. Для початку просто не треба робити капчу ніде, і, можливо, вона вам ніколи не знадобиться. Якщо у вас сайт з відвідуваністю до десяти тисяч чоловік в день і почався автоматичний спам, вашу форму знайшов якийсь універсальний робот-спамер. який просто бездумно спамить, де може.
- Ось кілька нехитрих прийомів для боротьби з бідою:
- Перейменуйте деякі обов'язкові поля форми, наприклад text або message в 0sfwa12dsa. Можна навіть робити їх динамічно генеруються, але по якомусь правилу: наприклад третя буква - f, шостий символ - цифра, на кінці a. Але не варто робити так з полями, які використовуються браузером для автопідстановки, типу імені та електронної пошти.
- Зробіть яваскріптовую перевірку на «маусмув» і «кейап / даун» з якимось хитрим алгоритмом передачі на сервер.
- Зробіть перевірку з змінних, але взаємозалежних значень в прихованих полях. Наприклад, згенеруйте яваскрипт два поля з числами і третє з їх сумою, а на сервері перевірте, чи збігаються дані.
З дуже великою ймовірністю тупий робот перестане вас турбувати, якщо не з першої ітерації, то з другої або третьої. Який сенс його власнику грати з вами в гру, в якій постійно змінюються правила, якщо у нього ще мільйон сайтів, щоб спамити?
У разі, коли спамлять саме ваш сайт, з одного боку, боротися складніше, а з іншого простіше. Ви можете вивчати противника. У будь-якої автоматизованої діяльності обов'язково є шаблон. Ваше завдання - цей шаблон знайти і використовувати для виявлення бота. Треба бути готовим до тривалої холодної війни зі спамерами, вони будуть змінювати алгоритми, щоб обійти ваш захист.
Що стосується голосувань, то тут все легше. Якщо ваш опитування жартівливий ( «Хто переможе в битві двох Йокодзуна: слон чи кит?»), То немає ніякого сенсу захищати його. Якщо ж важливий кожен голос, то система повинна враховувати голоси тільки що дізналися нею користувачів (я навмисно не пишу «зареєстрованих користувачів», так як реєстрація - тема іншої розмови).
Єдине місце, де, на мою думку, доречна капча - це форма логіна кудись. де зберігаються дуже особисті або фінансові дані користувача. Але навіть в цьому випадку вона повинна з'являтися після трё х-п'яти невдалих спроб входу.