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">
我正在研究一个需要将数组键保存为 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">