Одна вещь, которую вы должны знать о спамерах, это то, что они всегда идут за низко висящие фрукты. То же самое с хакерами. Под этим я подразумеваю, что они будут выбирать наиболее легко поражаемые цели, которые затрагивают большинство пользователей. Вот почему уязвимости PHP и Windows часто эксплуатируются: они затрагивают так много пользователей, что если вы обнаружите такую слабость / эксплойт, ваш целевой «рынок» будет огромен.
Это также большая часть причины, по которой Linux и Mac OS остаются относительно невредимыми, например, из-за вирусов: целевой рынок намного меньше, чем Windows. Теперь я не приравниваю безопасность и надежность Windows к Mac / Linux, но даже несмотря на то, что модель безопасности последних двух гораздо лучше, количество атак на первое по-прежнему несоразмерно с имеющимися у него недостатками.
Я говорю это потому, что одним из лучших способов избежать подобных проблем является не использование популярного программного обеспечения. Например, phpBB провёл множество атак против него только потому, что он так популярен.
Таким образом, создавая свою собственную систему чатов / форумов, вы оказались в невыгодном положении, поскольку у вас есть система, в которой нет полевых испытаний, чем то, что делает популярный, но у вас также есть преимущество в том, что оно не стоит большинству спамеров. время использовать это. Так что вам нужно следить за тем, что могут делать автоматизированные системы против вас. Контактные формы на веб-сайтах, как правило, имеют узнаваемые маркеры (например, поля имени, адреса электронной почты и комментариев).
Поэтому я бы посоветовал:
- Игнорирование ответов, которые приходят в течение, скажем, 5-10 секунд после отправки формы пользователю;
- Использование honeypot (скрытые поля CSS / JS, как описано в другом месте);
- Использование Javascript, где это применимо, для визуализации, изменения порядка или отображения формы;
- Использование непредсказуемых имен полей формы; и
- Дросселировать плохие ответы по IP.