Существует множество способов сделать это, и использование большого количества различных вещей является хорошей идеей для защиты от спама.
Что делает StackOverflow (из моего опыта), если происходит ненормальное количество сообщений, или, возможно, сообщения очень короткие, или что-то еще немного подозрительно, тогда они используют капчу.
Вы можете отслеживать это с помощью файлов cookie, например, отслеживание времени между публикациями является хорошим индикатором того, что кто-то спамит. Точно так же, если длины публикуемых сообщений имеют одинаковую длину или содержат одинаковые URL / ссылки или что-то еще, вы также можете отобразить капчу, чтобы проверить, является ли пользователь человеком.