Для простых случаев подойдет localStorage, но, что легко создается, легко же и отламывается.
Для более сложных случаев надо смотреть, какие требования предъявляются.
Например, если пользователь перед отправкой сообщения авторизуется, то, самое надежное - это, например в редиску, положить информацию, что пользователь такой - то недавно уже постил в такой - то ветке. Время жизни ключа будет определять длительность запрета на повторное комментирование.
Для случая, когда пользователь может оставаться неавторизованным - надо подумать. Что точно стоит заблокировать - это прямой заход на форму по ссылке. Необходимость запрашивать несколько страниц с сайта, да еще в определенном порядке - это хотя бы немного осложнит жизнь потенциальному спамеру.