可能重复:
PHP Session Security
我在整个申请过程中都在使用会话。我想让它们更加安全。目前我正在使用$username = $_SESSION['username'];
之类的代码。
如何让会话更安全?
答案 0 :(得分:4)
您需要注意的第一件事是Session Hijacking。引用维基百科:
在计算机科学中,会话劫持是指利用有效的计算机会话 - 有时也称为会话密钥 - 来获得对计算机系统中的信息或服务的未授权访问。特别是,它用于指向用于向远程服务器验证用户身份的魔术cookie的盗窃。它与Web开发人员特别相关,因为用于在许多网站上维护会话的HTTP cookie很容易被攻击者使用中间计算机或访问受害者计算机上保存的cookie而被窃取(参见HTTP cookie theft )。
基本思路是,如果您网站的访问者(Alice)有会话cookie和会话ID(让我们假设它是12345
),那么如果恶意用户(Mallory)能够学习Alice的会话通过JavaScript,流量嗅探,社交工程或其他方法识别ID,然后Mallory可以浏览到您的网站并将其会话ID设置为12345
,并且他实际上成为了Alice。
防止这种情况的一种方法是在每个请求上更改会话ID,您可以通过PHP session_regenerate_id
function来执行此操作。在致电session_regenerate_id
session_start()
请注意,这是一个非常复杂的话题。我强烈建议您阅读维基百科的文章,并确保您完全理解正在发挥的问题。
编辑:我打算为您输入更多信息,但后来我意识到您的问题确实是重复of this StackOverflow question。我建议将其作为起点。
答案 1 :(得分:2)
这很大程度上取决于你想要保护的东西。如果您担心会话中包含的信息可能会被公开或修改,您不必担心,因为服务器只能看到和修改它。
如果您担心某些人可能会使用其他人会话,您可以执行以下操作:
答案 2 :(得分:-1)
在数据库中使用md5版本的密码,然后md5加密会话密码,这样如果密码正确,那么这两个值将是相同的。