首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >表单安全令牌-为什么在bin2hex中使用bin2hex(random_bytes(32))

表单安全令牌-为什么在bin2hex中使用bin2hex(random_bytes(32))
EN

Stack Overflow用户
提问于 2017-09-19 15:28:42
回答 1查看 695关注 0票数 1

我试图在表单中添加一个令牌,以增强安全性(即CSRF)。到目前为止,我所发现的(在堆栈溢出和许多其他站点上)都是推荐使用的:

代码语言:javascript
复制
$_SESSION['token'] = bin2hex(random_bytes(32));

我的问题是直截了当的,为什么不直接用:

代码语言:javascript
复制
$_SESSION['token'] = random_bytes(32);

为什么要将它转换为十六进制表示?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-19 15:30:41

在表单的字段中,随机字节将不容易地作为令牌传递。你需要一些可预测的角色。字节的随机流几乎肯定会破坏任何客户端编码(utf-8、iso-8859-1、win1252、big5等)。表单使用。

另一方面,bin2hex编码的字符将始终是纯ASCII字符串,因此它们在客户机上的任何编码中都是安全的。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46304334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档