我正在研究CSRF预防,特别是不可预测的令牌,一个随机的字母数字字符串。我发现生成令牌的最佳解决方案之一是:
$token = base64_encode(openssl_random_pseudo_bytes($bytes));有些人说长度参数足够16个字节。 ($ bytes = 16)
但是,in this page,OWASP建议使用512位随机字符串。要实现这个数字,我必须传递64作为长度参数。 ($ bytes = 64)
但我也读到,随着这个长度越来越大,它会严重降低性能。
所以我不知道我应该使用的长度。什么是最好的选择?有什么建议吗?
答案 0 :(得分:0)
我会认为令牌中的128位熵是事实上的标准。 OWASP和CWE都建议至少这样做。