Создание уникального одноразового ключа для отправки с формой.
Использование Javascript - плохая идея, поскольку он может быть отключен пользователем на клиенте. В схеме ключей, когда отправка получена сервером, отправка для этого ключа может быть заблокирована. Вы можете отвечать на дубликаты, если хотите.
Чтобы этот подход работал, ключи должны быть уникальными и их очень трудно предсказать. В противном случае некоторые формы могут быть заблокированы из-за столкновений клавиш. Таким образом, вам не нужно отслеживать ключи для каждой отправки формы и избегать коллизий, ключи должны истечь с сеансом этого пользователя. Еще одна вещь, на которую следует обратить внимание: если злоумышленники смогут предсказать ключ, ваш код может оказаться уязвимым для какого-либо взлома или использования DOS.