Kal*_*sin 2 php security session
似乎最受欢迎的思想是随机生成会话ID,在用户登录时重新生成会话ID,并在他们登录时定期为现有用户重新生成会话ID,这只是为了提高安全性.
我正在使用替代解决方案,但我不是一个经验丰富的PHP专家,我担心有一个明显的安全漏洞(或两个......或更多),我可能会失踪.
如果您可以查看以下内容并告诉我它可能会受到什么影响,我会很感激.
该脚本创建一个与用户计算机绑定的会话ID,并始终保持不变.我想在哈希中包含当前日期,但是我们的夜班工作人员会在午夜退出.不是说我会到处听他们的抱怨;)
我确实意识到,如果两个使用相同操作系统和浏览器的用户使用免费WiFi坐在咖啡店,使用IP地址会被滥用,但这是针对内部MIS的,因此每个用户都有自己的静态IP地址.如果他们后来决定让它从网上访问我就麻烦了!但这不是规范的一部分:)
// Set the session ID
$session_hash = md5( $_SERVER['HTTP_USER_AGENT'] . $_SERVER['REMOTE_HOST'] . $_SERVER['REMOTE_ADDR'] );
// Compare against session ID received from user
if ( session_id() != $session_hash )
{
session_destroy();
unset ( $_SESSION );
session_id( $session_hash );
session_start();
}
else
{
// Attempt to load user details from database if $_SESSION['user_ID'] is set.
}
Run Code Online (Sandbox Code Playgroud)
欢迎并赞赏所有建设性意见!
我不打算尝试创建自己的会话ID.您的方法特别弱,因为在代理服务器的情况下,许多人将共享相同的远程主机,用户代理和远程地址.
除非您找到避免它们的特定原因,否则请使用PHP的内置会话.你没有表明你有这样的理由.恰恰相反,正如您所说的那样,系统是供内部使用的,其中您的家庭滚动"增强"会话安全性更不重要.
你正在做什么并不重要,你很可能只会通过尝试自己来减少PHP已经为你提供的安全性.
| 归档时间: |
|
| 查看次数: |
166 次 |
| 最近记录: |