其实我的问题很荒谬。我通过添加标题提供安全性。当我添加加密数据时,浏览器会出错。
代码源输出:
headers: {
"Authorization": "���6���/��O��u�f�߁v2��",
},
浏览器检测到:
headers: {
"Authorization": "���6���/��O��
u�f�߁v2��",
},
PHP代码:
headers: {
"Authorization": "<?php echo $_SESSION['sID']; ?>",
},
我的课程班级:
class Session {
public function __construct() {
if(session_status() == PHP_SESSION_NONE) {
session_start();
}
self::Encrypt('sID', session_id());
}
public static function Encrypt($Name, $Value) {
if(!is_null($Value)) {
$_SESSION[$Name] = openssl_encrypt($Value, Config::Get('Encrypt/Type'), Config::Get('Encrypt/Password'), OPENSSL_RAW_DATA, Config::Get('Encrypt/Session'));
return $_SESSION[$Encrypt];
}
return false;
}
}
有什么问题?有没有人有想法?最好的问候!
另外:str_replace
和trim
尝试了它的功能。
答案 0 :(得分:3)
设置了openssl_encrypt()
标志的OPENSSL_RAW_DATA
的返回值通常不是可打印的字符串。它通常包含无效的UTF-8字符,有时可能包含会干扰Javascript代码解析的字符,如引号。
此处不要使用OPENSSL_RAW_DATA
标志。如果没有设置此标志,该函数将返回Base64编码的输出,这更适合您的需要。