base64 是否有任何可以破坏 _SESSION 的字符?

Does base64 have any characters that can break _SESSION?

我正在研究一个需要将数组键保存为 base64 编码的解决方案。

虽然它目前运行良好,但我想知道 base64 (utf-8) 编码是否有任何字符会破坏 $_SESSION?

Base64 创建字母数字字符和“+”、“/”和“=”。没有括号,所以应该没有问题。

$_SESSION 能够保存任意数据,只要它们可以 serialized/unserialzied 到 PHP(大多数数据都可以)。它可以处理任意字符,因为会话数据存储在文件中并且文件可以处理它们。事实上,您甚至不必自己调用 serialize/ unserialize 函数,PHP 会为您完成。

问题归结为PHP中允许哪些字符作为数组键,答案是,如果是字符或整数,则允许。

没有。 Session 将其存储为一串字符。 只需确保您已启用 php-mbstring 扩展程序即可。编辑您的 php.ini 文件以使用 default_charset = "utf-8"。 对于浏览器输出,您可以使用 php header 函数

header('Content-Type: text/html; charset=utf-8');

或 您可以在 html

中指定编码
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">