Закодированы ли токены CSRF base64url? - PullRequest
0 голосов
/ 15 октября 2019

Я работаю над приложением, которое анализирует токен CSRF из заголовка файла cookie. Я хотел бы знать, кодируются ли токены CSRF base64 с помощью безопасных для URL символов (см. https://simplycalc.com/base64url-encode.php), чтобы я мог сопоставить их с регулярным выражением

[.a-zA-Z0-9_-]+

, которое мне удалось найтидокументация по веб-токенам JSON (JWT), указывающая, что они состоят из закодированных в base64url частей, разделенных точками ('.'), но я не смог найти аналогичную документацию по токенам CSRF.

Являются ли токены CSRF такжеобычно ограничен определенным набором символов, или они могут содержать какие-либо символы?

1 Ответ

1 голос
/ 15 октября 2019

CSRF-токен - это непрозрачное «nonce», которое не содержит никакой информации - токен в отправке формы и токен в cookie или заголовке просто должны совпадать - вот и все. Если вы видите их в кодировке base64, это просто для удобства передачи, но он не будет декодировать ничего полезного, просто случайные байты большую часть времени. Ничего подобного JSON-структуре JWT.

Глядя на мою текущую платформу (Laravel), ее токены CSRF являются просто случайными строками (они получены из base64, но не являются допустимыми base64). Скорее всего, это относится и к большинству других фреймворков.

...