Чтобы остановить злых людей, я большой поклонник ссылки "Пометить этот пост". Ваше сообщество сделает большую часть модерации за вас.
Чтобы остановить разумных людей, которые написали что-то подстрекательское, вы можете попытаться быть умным. Составьте длинный список действительно сильных слов (очевидно, что проклятия являются самыми сильными) и оцените каждое из них соответствующим образом. Если показатель силы слова в сообщении (с поправкой на количество слов в сообщении) пересекает пороговое значение, отобразите большое красное предупреждение и предложите постеру рассмотреть возможность переписывания. И если они в любом случае нажмут кнопку «Отправить», отправьте это в очередь на модерацию, а не отправляйте немедленно.
Чтобы остановить спаммеров, я большой поклонник криптографической функции nonce + hash, выполняемой в технике воспроизведения javascript + cookie. Не требуется визуальное пространство для уродливой капчи, и эквивалентная производительность на практике. Я еще не видел, чтобы спамер преодолевал препятствия, необходимые, чтобы победить его автоматически. Я видел сбитых с толку спаммеров, которые вручную вводили спам после того, как их автоматизированные системы были отклонены с точностью до 100,0%.
И полностью прочитайте эту ссылку Клэя Ширки из другого ответа. Понимание динамики сообщества является ключевым.
Дополнения : Реализация неинтерактивной капчи.
Сделайте AJAX-запрос для одноразового номера на сервер. Сервер отправляет обратно ответ JSON, содержащий одноразовый номер, а также устанавливает файл cookie, содержащий значение одноразового номера. Рассчитайте хэш SHA1 для одноразового номера в javascript, скопируйте значение в скрытое поле. Когда пользователь отправляет форму POST, он теперь отправляет cookie обратно со значением nonce. Рассчитайте хэш SHA1 для одноразового номера из файла cookie, сравните его со значением в скрытом поле и убедитесь, что вы сгенерировали этот одноразовый номер за последние 15 минут (memcached подходит для этого). Если все эти проверки пройдены, оставьте комментарий.
Эта техника требует, чтобы спаммер садился и выяснял, что происходит, и, как только они это сделали, им все равно приходилось запускать несколько запросов и поддерживать состояние, чтобы получить комментарий. Это намного, гораздо больше работы, чем большинство спамеров готовы пройти, тем более что работа относится только к одному сайту. Самым большим недостатком является то, что любой, у кого отключен JavaScript или cookie, помечен как потенциальный спам. Это означает, что очереди на модерацию все еще хорошая идея.
Теоретически это можно квалифицировать как безопасность через неизвестность, но на практике это отлично.