关于PHP SESSION 的一点疑问,请各位指教不吝指教,谢谢!

PleaseDoTellMeWhy 2010-04-26 10:31:04
有很长的日子没来CSDN上看帖了,久违了大家。
最近整理了一下过去写的一些程序,发现对SESSION好像一直也不太关注,项目上基本都用的COOKIE,这方面的知识很薄弱,所以恶补了一下,遇到个问题自己的和网友的解决方法感觉都不太满意,想请CSDN的朋友们帮帮忙谢谢了先。

问题描述如下:

假设传递 session_id 只能用URL的方式来传递,不能用什么cookie, POST隐藏表单之类的方法,出现个问题就是如果我的带有 session_id 的URL 发给别人后,别人在浏览器上打开该URL也能得到我的 session_data。那么我如何能做到让该 session_id 只跟原始产生该 session_id 的用户绑定呢?

也就是说 ( A用户 + 某些随机数)处理后 => 生成原始的 session_id,
该session_id 在B用户使用时候 反算出这个session_id 是由A用户生成的,所以就不能查看与之对应的 session_data,就难在我如何能得到标示A用户的唯一标示符。

望各位朋友赐教,解决问题者另开贴加 200 分,谢谢。
...全文
116 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cooledit2730 2010-04-27
  • 打赏
  • 举报
回复
LZ可以问问做WAP站的朋友。
hzcenter 2010-04-27
  • 打赏
  • 举报
回复
用抓包软件看看这个sessionid是怎么传值就知道了

服务器怎么使用的就明白怎么做了。
CodeBus 2010-04-27
  • 打赏
  • 举报
回复
如果搂主是担心B拿到A的session_id这种问题。。我觉得应该怪A。。谁让你把钥匙给别人的。。
CodeBus 2010-04-27
  • 打赏
  • 举报
回复
session_id没那么容易重的,不过也不是绝对。。
可以通过客户端提供的ip,浏览器等信息在服务端进行二次验证。
PleaseDoTellMeWhy 2010-04-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 bing19870624 的回复:]
楼主是怎么判断A和B在线状态 或者是登陆状态 A用户和B用户应该有唯一的标识吧 比如登陆id
这个session_id自定义好像不是那么简单吧
我想是不是可以在传递的链接上加一个参数用于标识是A的链接 当然这个参数需要加密 要在MD5的基础上再自定义一个算法 比如A的登陆id拼上一个key 再MD5
在B接受时 打开页面把当前的登陆id 按刚才的算法执行一下 比较值是否相同 不同就不执行s……
[/Quote]

您能明白我的意思,但是您说的那种加个参数也可以拷贝给B,不管你怎么MD5还是sha1之类的做法都是可以为B所用的,所以还是不行。另外我的session_data 存在数据库里头的,判断个登陆状态很容易得。

我说的就是这个session_id 只能通过URL传递的话可以用来伪造session_id来再别的计算机上获取session_data 进而伪造为别的用户的登陆状态从而造成安全问题。
餅餅 2010-04-26
  • 打赏
  • 举报
回复
楼主是怎么判断A和B在线状态 或者是登陆状态 A用户和B用户应该有唯一的标识吧 比如登陆id
这个session_id自定义好像不是那么简单吧
我想是不是可以在传递的链接上加一个参数用于标识是A的链接 当然这个参数需要加密 要在MD5的基础上再自定义一个算法 比如A的登陆id拼上一个key 再MD5
在B接受时 打开页面把当前的登陆id 按刚才的算法执行一下 比较值是否相同 不同就不执行session_id($_GET[’id’]); session_start();或者其他程序
zunyir 2010-04-26
  • 打赏
  • 举报
回复
session 的id由服务器管,
你能看见的session管的页面,只能在本机有效。给别人页面也没有用
PleaseDoTellMeWhy 2010-04-26
  • 打赏
  • 举报
回复
网上看到一个说是用$_SERVER['HTTP_*'] 可以做唯一标示,我个人觉得不太好,所以这个答案就放弃了,谢谢各位。

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧