Согласен с товарищем
Administrator, что прятать контент от гостей - только себе вредить.
Могу подкинуть к выше приведенным примерам Админом (без второго варианта) еще вариантик:
1. Секретный вопрос.
3. Сообщения от новых пользователей не появляются на форуме до их проверки модератором.
Сделать регистрацию пользователей только через социальные сети - нормальная, такая защита.
Возможно кому то пригодится этот вариант, он удобен для ваших пользователей - регистрация в два клика и ни каких полей заполнять не надо... Люди любят по быстрому. Но лично я не хочу, что бы на моих проектах были подобные формы, а ставить этот сценарий, только из-за спама - ну нет, блин...
Я как то писал один движок, и на нем сделал регистрацию с капчей, так замучился удалять спам посты.
Боты могут обходить капчу. Решил сменить простую регистрацию с капчей на регистрацию на ajax, без капчи, и ни один спам бот не смог зарегистрироваться, только реальные люди. Вывод сделал, что боты не поддерживают JavaScript и обламываются при встречи с такими сценариями.
Пока, что это лучшее решение.