Боротьба з роботами. Пояснення.

Боротьба з роботами. Пояснення.

Після прочитання нотатки про початок моєї боротьби з роботами, багато хто запропонував використовувати стандартні засоби на зразок капчі або поля для введення, прихованого властивостями CSS. Були й нестандартні варіанти, на кшталт розпізнавання зорових образів (кішечка це чи собачка зображена на картинці?), аналізу руху миші по сторінці перед відправкою коментаря або плутанини в іменах полів.


Деякі з цих способів мені подобаються, деякі - ні. Скажімо, незважаючи на ефективність відсіювання спаму за допомогою капчі, її використання видається мені недоцільним, так само як і використання розпізнавання образів. Прикиньте самі - користувачеві щоразу доводиться доводити що він не верблюд. Я б на його місці образився.

Інші дії з проведення межі між роботами і живими людьми, на зразок аналізу руху миші на сторінці перед відправкою коментаря, бачаться мені надто ускладненими. З тим же результатом можна перевірити, чи підтримує робот Javascript чи ні. При цьому в будь-якому випадку користувачі з відключеним Javascript залишаються за бортом. Це недобре, незважаючи на малу їх кількість. Також не варто забувати про те, що скрипти на боці клієнта емулювати дуже просто, а отже, для серйозних систем захисту вони не підходять.

А ось способи, непомітні для простого користувача, я вважаю найбільш вдалими. У невеликих проектах, де не потрібен захист від спеціалізованих роботів, варто використовувати саме такі рішення. Це приховування (display:none) спеціального поля введення «для спамерів» - звичайний користувач його не побачить, а робот в нього обов'язково що-небудь напише. Ще можна організувати плутанину в назвах полів - поле з постовою адресою обізвати «name». В результаті в нього буде вбито ім'я спамера і воно не пройде валідацію.

Методи, описані в останній групі хороші в першу чергу тим, що користувач не доводить нікому що він не спамер - спамери самі видають себе. У гіршому випадку користувачеві кожен раз доведеться погоджуватися з тим, що не верблюд - не заповнювати порожнє поле для спамерів. Мені здається подібний підхід з часом буде ставати більш популярним, ніж використання виключно капчі, незважаючи на ефективність останньої.

Вже зараз у великих сервісах капча часто з'являється для відсіву потенційно роботизованих користувачів - наприклад тих, що з 1-ї спроби не зміг згадати свій пароль. Або тих, хто залишає більш 5 коментарів за 5 хвилин. Тобто. працює презумпція невинуватості - користувач вважається людиною, поки не зробить чогось, не властивого людині, але властивому роботу. Можна розвинути подібне ставлення до користувачів, приймаючи для аналізу не тільки поточні дії, але і всю накопичену історію за цим користувачем.

На жаль я не маю розгорнутої статистики по роботам і їх поведінці. Це непогана мета для дослідження. Можливо навіть я займуся цим. Якби така статистика була, то можна було б говорити про роботи більш конкретно, вказуючи конкретні цифри. Погодьтеся - було б цікаво знати відсоток роботів, які вміють обходити певний тип захисту. Або володіють унікальними навичками (наприклад вміють обробляти Javascript або маскуються під живих людей при переміщенні по сайту). Це дозволило б більш ефективно вибудовувати політику захисту сайтів від спаму.

Я хочу провести аналогію. Як у казино спостерігають за відвідувачами, не заважаючи їхній грі і намагаючись вирахувати шулерів на основі аналізу їхньої поведінки, так і я хочу бачити системи захисту сайтів, що виявляють спам-роботів, орієнтуючись не тільки на його сьогочасні дії, але на історію його дій у минулому і особливості поведінки. Думаю, володіючи подібною інформацією, можна виявляти роботів (в тому числі і спеціалізованих) досить ефективно, не заважаючи простим користувачам.

взято з мого блогу