我正在开发一个需要会话而不是cookie的项目,我想知道保护它们的好方法是什么? 使用cookies我会做这样的事情:
$x = serialize(array('username', sha1('pwd')));
setcookie('cookieName', $x, time()+60);
...
$myCookie = unserialize($_COOKIE['cookieName']));
echo $myCookie[0];
但我不太确定如何通过会话来解决这个问题。
答案 0 :(得分:5)
无需在会话中序列化数据。它会为你序列化。
此外,我不知道这与安全有什么关系。 cookie中的密码的SHA1散列?您根本不应该发送客户端密码!至少在会话中,变量只存储在服务器端(默认情况下会话存储在服务器端文件中)
答案 1 :(得分:1)
不要将重要数据放入会话或cookie中。在数据库和会话中保存id或散列ID,然后只需在数据库中检查基于散列键的正确数据。你也可以使用md5('username');将其保存在会话中,之后当您需要数据时,只需将会话用户名/哈希与md5('用户名')进行比较;当前用户
答案 2 :(得分:0)
您也可以将序列数据存储到会话中。此外,如果需要,您可以将所有会话数据存储在数据库中的searilaized形式并维护一个sesion ID:
$_SESSION['key']= serialize(array('username', sha1('pwd')));