Сен 6, 2008
SJCaptcha Lite: невидимая защита от спама
Спаму не место на блоге!
Собрав большую статистику по спам-ботам, я решил несколько видоизменить плагин SJCaptcha — причем в сторону упрощения.
Причин тому несколько:
- Проверка FCrDNS оказалась черезмерно эффективной: да, она спасает от спам-ботов. Но, к сожалению, из-за большого радиуса кривизны рук некоторых провайдеров, которые не могут нормально PTR-записи прописать (или поставить им в соответствие A-записи), отсеиваются и вполне нормальные пользователи. Что обидно.
- Проверка A и MX-записей доменов, указанных в email, оказалась не очень эффективной: большинство спамеров хотя и используют несуществующие адреса, но указанные домены в природе всё же существуют. К тому же, реализация данной проверки не работает в Windows (особенности PHP)
- Собственно CAPTCHA оказалась очень эффективной — все "слишком умные" спамботы срезались именно на ней. К сожалению, при отключенных изображениях или использовании консольных браузеров она бесполезна. А если роль спам-бота играет человек, то она вообще никак помочь не сможет. Увы.
Что получилось в итоге: остался переработанный метод изящного отсеивания спама. Его эффективность на данный момент я оцениваю в 99%: эту защиту обошла всего лишь парочка ботов. Я за ними очень пристально наблюдаю и надеюсь, что смогу найти простую управу и на них.
Бета-версию плагина SJCaptcha Lite для WordPress на свой страх и риск можно скачать отсюда.


Адреса, с котрых режется больше всего спама:
118.175.255.10
192.192.35.235
202.28.27.3
202.75.144.62
203.121.133.22
213.253.169.130
217.113.18.130
218.27.148.66
62.149.67.49
78.132.160.116
80.90.160.45
82.207.89.105
83.138.140.52
83.138.162.78
85.172.19.238
89.31.88.150
92.113.12.41
92.61.33.82
Их можно добавить, например, в .htaccess:
Deny from 118.175.255.10 192.192.35.235 202.28.27.3 202.75.144.62 203.121.133.22 213.253.169.130 217.113.18.130 218.27.148.66 62.149.67.49 78.132.160.116 80.90.160.45 82.207.89.105 83.138.140.52 83.138.162.78 85.172.19.238 89.31.88.150 92.113.12.41 92.61.33.82
Allow from All
Скачал, попробую потестить.
“А если роль спам-бота играет человек, то она вообще никак помочь не сможет” - в этом случае бесполезны все капчи. А по поводу Вашей… В общем, я в капчи мало верю. Только в те, что с изображением. Аксиметы всякие и прочее - это не помогает на 100%, а если не на 100%, то в капче мало смысла.
В подобном поединке “человек - компьютер” компьютер всегда проигрывает. Любую капчу можно расшифровать, было бы желание.
Когда я использовал SJCaptcha, у меня спама вообще не было. Я знаю слабые стороны этой капчи, но также знаю несколько способов их усиления (на всякий случай). Просто мне неинтересно использовать капчи с изображением и прочим, ибо они отрицательно сказываются на usability. Мне интереснее найти вариант, автоматически отсеивающий хотя бы 98-99% спамеров. Кстати, такой вариант есть — FCrDNS + DNSBL, но из-за большого радиуса кривизны рук многих провайдеров от него будут страдать невинные пользователи.
Есть, конечно, всякие полумеры типа разрешения комментирования только зарегистрированным пользователем и установкой охренительной капчи на форме регистрации, но опять же, это не наш путь.
Не согласен… Проще удалить один-два спам-комментария, чем выгребать их десятками.
Напишу пару идей, может быть, кто-нибудь реализует…
Expect: 100 Continue.wp-comments-post.php. Например, использовать в форме другое имя, которое будет переписываться черезmod_rewriteвwp-comments-post.phpс каким-нибудь параметром.Настало время эти идеи реализовывать, ибо спамеры охренели.