我用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中文网,转载请注明出处,感谢您的尊重!

php 地址栏url,php 如何隐藏url地址栏参数相关推荐

  1. java 隐藏地址栏参数_要想在浏览器的地址栏上的URL中隐藏传输的参数,需要将form标签的method属性值设置为( )。 (5.0分)_学小易找答案...

    [填空题]若在JSP页面的不同作用域中有相同名称的对象,且EL表达式中又省略了相应的作用域类型名,则系统将会按照 . . . 的先后顺序查找相应对象. (20.0分) [简答题]AJAX异步请求过程中 ...

  2. 手机界面操作-隐藏url地址栏

    除了用全屏模式隐藏url地址栏外,还可以使用如下代码实现对url地址栏的隐藏. <body οnlοad="setTimeout(function(){window.scrollTo( ...

  3. android 隐藏webview地址栏,flutter - 在Flutter Webview中隐藏Url引用 - SO中文参考 - www.soinside.com...

    flutter_inappwebview: git: url: https://github.com/pichillilorenzo/flutter_inappwebview.git ref: mas ...

  4. 【苹果推群发iMessage推】地址栏输入并掀开此URL:筛选单击证书,终结符和配置设备安排文件。

    推荐内容IMESSGAE相关 作者✈️@IMEAE推荐内容 iMessage苹果推软件 *** 点击即可查看作者要求内容信息 作者✈️@IMEAE推荐内容 1.家庭推内容 *** 点击即可查看作者要求 ...

  5. 动态网页中隐藏url参数传递的方法

    做过网站开发的朋友肯定知道,我们在做动态网站的时候往往会在各个页面之间传递参数,而这些参数的名称和值都会在url地址栏中被暴露出来,有的时候参数的名称可能就是数据库中某个字段的名称,这样一方面不安全, ...

  6. 网页转变成app,隐藏浏览器地址栏

    网页转变成app,隐藏浏览器地址栏 创建chrom快捷方式 双击打开chrom快捷方式 网页右上角 更多工具 创建快捷方式

  7. JAVA WEB项目隐藏url真实路径,url地址重写UrlRewriteFilter

    有这么一种情况,不想让别人知道你项目访问的真实url,或者为了让url方便记忆,想用自己想用的url,该怎么办呢? 1.隐藏url的真实路径 2.url的重写 UrlRewriteFilter可以完美 ...

  8. php解析url编码,php对URL传参进行编码和解码解析

    1. 对URL 传递的参数进行编码 使用URL 传递参数数据,就是在 URL地址后面加上适当的参数.URL 实体对这些参数进行处理.其使用的方式如下面的格式: 显而易见,这种方法将会把参数暴露出来,安 ...

  9. 自己购买的域名如何设置子域名,如何设置访问多个项目,万网域名如何设置显性url转发和隐性URL转发,以及如何通过github 转发到自己的地址

    自己购买的域名如何设置子域名,如何设置访问多个项目,万网域名如何设置显性url转发和隐性URL转发. 准备工作 1.有一台服务器 2.有一个域名 多项目转发 1.通过自己的域名后面加项目名来完成,这个 ...

最新文章

  1. 系统启动时,spring配置文件解析失败,报”cvc-elt.1: 找不到元素 'beans' 的声明“异常...
  2. 有关LocalAlloc,LocalReAlloc,LocalFree,GlobalAlloc,GlobalReAlloc,GlobalFree的模糊点总结
  3. 在spring MVC项目中集成Spring session redis (使用spring session框架,redis作为存储缓存)...
  4. python计算能够包含两个圆的最小圆
  5. Android 自动检测更新,自动下载apk更新版本
  6. 嗖嗖移动 开发过程 9203 javaoop book2 Boss
  7. php软件开发--redis操作
  8. IDEA打jar包时出现manifest.mf already exists in vfs解决办法
  9. asp.net core2.0中网站发布的时候,怎么样才配置才可以使视图文件不被打包进去?...
  10. Python基础-数据类型转换,默认参数,关键字参数
  11. 李嘉诚培养23岁孙女接班 每年安保费就要花10亿!
  12. 2018.5.1 差分放大电路实验
  13. Windows 10 企业版LTSCjihuo
  14. 小米真蓝牙耳机说明书_小米蓝牙耳机使用说明,开箱评测小米蓝牙耳机
  15. 带宽、特征频率、截止频率、-3dB
  16. Python办公自动化之Excel报表自动化,看这一篇就够了!
  17. 用二分法求下面方程在(-10,10)之间的根:2x^3-4x^2+3x-6=0
  18. Ceph OSD Down
  19. 因疫情影响,传苹果下一代iPhone发布将推后一个月
  20. 基于matlab的交通信号模糊控制系统设计

热门文章

  1. Sybase数据库连接配置
  2. Arm-Linux 移植 ssh
  3. unity中Animation与Animator的区别
  4. teamviwer安装提示 Verification of your Teamviewer version failed!.
  5. linux命令大全网址
  6. [译]简单得不得了的教程-一步一步用 NODE.JS, EXPRESS, JADE, MONGODB 搭建一个网站
  7. Python-多线程编程
  8. 【转载】MySQL学习总结一
  9. 网站压力测试工具webbench 安装与使用
  10. 坚持的力量 第十一篇