Вы можете сделать либо.Это зависит от уровня безопасности, который вы хотите.
OWASP Enterprise Security API (ESAPI) использует один маркер для каждого сеанса пользователя.Вероятно, это довольно эффективный метод, если у вас нет дыр в XSS и у вас достаточно короткие тайм-ауты.Если вы позволяете сеансам оставаться в живых в течение нескольких дней или недель, тогда это не очень хороший подход.
Лично мне не сложно использовать разные токены для каждого экземпляра каждой формы.Я сохраняю структуру в сеансе пользователя с парами ключ-значение.Ключом для каждого элемента является идентификатор формы, а значением является другая структура, содержащая токен и срок действия этого токена.Обычно я позволяю токену жить в течение 10-20 минут, после чего срок его действия истекает.Для более длинных форм я могу дать ему долгое время истечения.
Если вы хотите иметь возможность поддерживать одну и ту же форму на нескольких вкладках браузера в одном и том же сеансе, тогда мой метод становится немного хитрым, но все же его легко реализовать, имея уникальные идентификаторы формы.