Скажу сразу, победить спам на 100% у вас не получится, но можно хотя бы его минимизировать. Популярные решения на сегодняшний день:
1) CAPTCHA + reCAPTCHA. Первое, что приходит на ум. Но капча уже давно не панацея, т.к. давно уже есть толпы индусов, который сидят и вручную проходят капчу для своих заказчиков.
2) Antibot. Моё любимое решение на сегодняшний день. Модуль пытается анализировать поведение пользователя и если оно похоже на поведение бота, то попытка спама будет заблокирована
3) Honeypot похож на Antibot, но все мои попытки использовать его провалились. Защита попросту не работала.