php - 专有网络服务器中的 session 管理

标签 php c session webserver

我的任务是尝试解决网络服务器中的 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/

相关文章:

c - 尝试根据参数数量而不是类型在 C 中实现函数重载

C程序未运行

security - 您能轻松猜出可能生成的 GUID 吗?

objective-c - 在 Objective C 中使用指针的最大优势是什么

php - 发送多个AJAX数据到PHP并更新Mysql数据库

php - 子域上 Slim PHP REST API 的 .htaccess 配置?

php - 从多个表中选择时,如何在分组之前实现排序

asp.net - 使用 Asp.net 路由的 IRouteHandler.GetHttpHandler 中的 session 为 null

Node.js 在数据库中保存 session 时出现错误,Sails.js 使用 sails-mongo 模块?

php - 检查mysql数据库中是否存在用户名?