php 地址栏url,php 如何隐藏url地址栏参数

我用PHP做的页面,如果点击某用户查看该用户信息时,在URL栏上出现:http://www.abc.com/index.php?user_id=39,修改数字就可以查看另外的用户。这样太不安全了吧?

用什么方法可以避免此问题,让URL上只出现"http://www.abc.com/"或"http://www.abc.com/index.php"这样的信息?

请教具体做法!

回复讨论(解决方案)

修改数字就可以查看另外的用户。这样太不安全了吧?

这个安全问题不需要隐藏URL参数来解决,用$_SESSION来判断当前用户是否是参数user_id的值,如果是,可以查看,否则不能查看。而且查看别的用户的信息应该是被允许的,你可以在视图里过滤掉一些隐私的信息

可通过 cookie 或 session 传递

可以写一下 详细代码吗,急求 ,谢谢

修改数字就可以查看另外的用户。这样太不安全了吧?

这个安全问题不需要隐藏URL参数来解决,用$_SESSION来判断当前用户是否是参数user_id的值,如果是,可以查看,否则不能查看。而且查看别的用户的信息应该是被允许的,你可以在视图里过滤掉一些隐私的信息

具体怎么写可以 附上代码吗 实在是不懂

这是权限控制问题

比如 http://my.csdn.net/xuzuning 和 http://my.csdn.net/ 呈现出来的就不一样

最简单的就是用session进行比对

至于代码 自己写 有bug或者不能跑再问

//首先,你得在用户登录后把uid存到session里,比如在login.php中$_SESSION['uid'] = XXX //XXX为用户登录时给他的sessionID(和user表的uid值相同)//比如在userinfo.php中if($_SESSION['uid'] == intval($_GET['user_id'])){//显示当前登录用户信息}else{//可以显示别的用户的信息(用$_SESSION['uid']查询user表的uid,并根据需要展示信息)//也可以直接给出error信息,告诉他不能查看该用户的信息}

//首先,你得在用户登录后把uid存到session里,比如在login.php中$_SESSION['uid'] = XXX //XXX为用户登录时给他的sessionID(和user表的uid值相同)//比如在userinfo.php中if($_SESSION['uid'] == intval($_GET['user_id'])){//显示当前登录用户信息}else{//可以显示别的用户的信息(用$_SESSION['uid']查询user表的uid,并根据需要展示信息)//也可以直接给出error信息,告诉他不能查看该用户的信息}

不好意思 还是不太懂,$_SESSION['uid'] = XXX 是放在那个登陆时的html页面 还是放在 php 页面 ,if($_SESSION['uid'] == intval($_GET['user_id'])){ 具体是放在哪儿呢,放在登陆后的html页面上呢,还是放在登陆后做判断的 php页面呢

$_SESSION['uid'] = XXX放在php脚本里,在该脚本中:在完成了登录信息检查之后,设置$_SESSION['uid'] =XXX,该XXX应该是根据用户登录的表单字段从user表取出的uid。

if($_SESSION['uid'] == intval($_GET['user_id']))应该放在登陆后做判断的 php脚本里,如果GET传来的user_id和$_SESSION['uid']一致,则从用户信息表取出用户信息赋值给$userinfo,再引入html页面,在html页面里嵌入php代码,比如用户名:

如果传来的参数和$_SESSION['uid']不相同,则表示要查看的用户信息不是当前登录的用户,这时,如果你想显示出该用户的信息,仍然是从根据GET的user_id从用户信息表查信息,你可以选择性地展示一些用户信息,不展示一些隐私的信息;如果你不想显示当前登录用户之外的其他用户的信息,直接header(location:XXXXX);跳转到错误页面,提示不能查看他的信息

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值