Heim >Backend-Entwicklung >PHP-Tutorial >php 如何隐藏url地址栏参数

php 如何隐藏url地址栏参数

WBOY
WBOYOriginal
2016-06-23 13:26:304125Durchsuche

我用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);跳转到错误页面,提示不能查看他的信息

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn