有很长的日子没来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 分,谢谢。
最近整理了一下过去写的一些程序,发现对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 分,谢谢。
你能看见的session管的页面,只能在本机有效。给别人页面也没有用
这个session_id自定义好像不是那么简单吧
我想是不是可以在传递的链接上加一个参数用于标识是A的链接 当然这个参数需要加密 要在MD5的基础上再自定义一个算法 比如A的登陆id拼上一个key 再MD5
在B接受时 打开页面把当前的登陆id 按刚才的算法执行一下 比较值是否相同 不同就不执行session_id($_GET[’id’]); session_start();或者其他程序
您能明白我的意思,但是您说的那种加个参数也可以拷贝给B,不管你怎么MD5还是sha1之类的做法都是可以为B所用的,所以还是不行。另外我的session_data 存在数据库里头的,判断个登陆状态很容易得。我说的就是这个session_id 只能通过URL传递的话可以用来伪造session_id来再别的计算机上获取session_data 进而伪造为别的用户的登陆状态从而造成安全问题。
可以通过客户端提供的ip,浏览器等信息在服务端进行二次验证。