Механизм двойного представления файлов cookie требует использования файлов cookie. Тем не менее, файлы cookie используются всеми вкладками браузера. Как реализовать этот механизм, не ломая кнопки "Назад" и вкладки браузера?
Значение: если все вкладки используют один и тот же файл cookie для хранения токена CSRF, каждый раз, когда открывается новая вкладка, это приводит к засорению значения cookie всех старых вкладок. Когда формы в этих старых вкладках будут отправлены, они потерпят неудачу с несоответствием токена.
С другой стороны, если я использую отдельный файл cookie для каждой вкладки, как сервер узнает, какой файл cookie искать? А также, если вам нужно использовать скрытое поле для указания имени файла cookie, открывает ли оно каким-либо образом новые возможности для защиты (поскольку злоумышленники, использующие CSRF, могут изменять значения форм)?
ОБНОВЛЕНИЕ:
- Реализация должна быть без сохранения состояния /RESTful. Нет серверной "сессии".
- Вы можете предположить, что я контролирую все субдомены, поэтому злоумышленники не смогут писать свои собственные куки.