我的任务是尝试解决网络服务器中的 session 管理问题。该代码是用 c 语言编写的,而且相当古老。 session 仅限于为新 session 创建一个文件夹,并且在顶部运行一个小的 php 脚本并检查 SID 对于登录用户是否有效。
但是程序的工作方式是 SID 存储在 URL 中!因此任何复制粘贴都会导致 session 劫持。现在我被告知不可能更改 SID 存储在 URL 中的事实。无法使用 cookie,因为某些客户的浏览器具有较高的安全设置,并且该设置也无法更改。我唯一能想到的就是 URL 重写,将 SID 存储在隐藏字段中,但我仍在等待经理的信息,我认为这是不可能的,因为 HTML 文件是预先编写的,我不认为可以向它们添加隐藏字段,也许这可以由服务器程序动态完成,我不确定。我的最后一个想法是使用 token ,或者只是在发现不同的 IP 地址或用户代理字符串时启动新 session ,即使它具有有效的 SID。
我对网络安全不太了解,我正在大学实习,主要是 C 编程,但这项任务是作为一个小项目而完成的,我想尝试用它来完成一些事情。
请问各位有指点吗? 我知道我一直很含糊,我不被允许发布任何代码:(抱歉 不过,感谢您提前提供帮助。
最佳答案
即使使用已经存在的 session 管理器,避免 session 劫持的唯一方法也是根据客户端的 IP 地址以及可选的用户代理字符串进行验证。任何其他建议都可以只是为了默默无闻,但如果有人决定尝试侵入您的应用程序,则不会产生任何效果。
关于php - 专有网络服务器中的 session 管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8487402/