CSRF令牌是否进行了base64url编码?

3

我正在开发一款应用程序,从cookie头中解析CSRF令牌。 我想知道CSRF令牌是否使用URL安全字符进行base64编码 (参见https://simplycalc.com/base64url-encode.php),以便可以将其与正则表达式匹配。

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

我找到了关于JSON Web令牌(JWT)的文档,指出它们由用句点('.')分隔的base64url编码部分组成,但我没有找到类似的CSRF令牌文档。

CSRF令牌是否也通常限制于某种字符集,还是可以包含任何字符?


CSRF令牌可以通过许多不同的方式生成,如果不知道是哪个框架生成了这个特定的CSRF令牌,那么就无法回答这个问题。 生成该CSRF令牌的框架是哪个? - Alex
1个回答

4

CSRF令牌是一个不包含任何信息的不透明“nonce”——表单提交中的令牌和cookie或标头中的令牌只需要匹配即可。如果您看到它们被Base64编码,那只是为了传输方便,但大多数情况下这不会解码出任何有用的内容,而只是随机字节。与JWT的JSON结构完全不同。

看一下我当前的框架(Laravel),它的CSRF令牌只是随机字符串(它们派生自Base64,但不是有效的Base64)。很可能大多数其他框架也是如此。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接