Я не понимаю, как использование "токена вызова" добавит какие-либо предупреждения: какое значение должно сравниться с чем?
От OWASP:
В общем, разработчикам нужно только генерируйте этот токен один раз для текущая сессия. После первоначального генерация этого токена, значение хранится в сеансе и используется для каждого последующего запроса до сеанс истекает.
Если я правильно понял процесс, это то, что происходит.
Я вхожу в систему http://example.com, и создается сеанс/файл cookie, содержащий этот случайный токен. Затем каждая форма содержит скрытый ввод, содержащий это случайное значение из сеанса, которое сравнивается с сеансом /cookie при отправке формы.
Но что это значит? Разве вы не просто берете данные сеанса, не помещаете его на страницу, а затем сравниваете с теми же данными сеанса? Похоже на круговые рассуждения. В этих статьях постоянно говорится о политике "одного и того же происхождения", но это не имеет никакого смысла, поскольку все атаки CSRF имеют тот же источник, что и пользователь, просто обманывая пользователя в действиях, которые он/она не намеревался.
Есть ли альтернатива, кроме добавления токена к каждому URL-адресу в виде строки запроса? Кажется очень уродливым и непрактичным, и делает закладки более сложными для пользователя.