Discuz3.2源码解析 首页(index.php)

根目录下index.php 是整个系统的默认首页,以此文件入手,跟整个系统的运行流程是一致了,也方便分析整个系统的处理流程。

 

    index.php的前几行代码(如下图),可以看出,先判断是url中是否有请求的字符串。如果有且是数字则是把当前模块默认为用户空间页面,请求的字符串为uid。

    既然如此,我们可以直接在地址栏里面输入 "系统地址/index.php?1"(默认情况下,管理员的uid为1),这样子就可以查看到uid为1的用户信息(如下图所示)。

这样通过此方法,貌似可以抓取用户信息和探测用户及用户数了。

 

如果index.php后面没有请求字符串或者请求参数不是纯数字,则要根据请求参数和系统设置,判断如果处理该请求了,当然了,如果发生任何的意外,系统都将转向forum.php,毕竟这个系统以论坛系统为核心的,这个默认处理的路径很简单,如下图:

 

    index.php 在有非数字请求参数的时候,会检测下/data/sysdata/cache_domain.php里面的缓存,里面存放的是一些域名和app配置信息,如果没有这个缓存,则会从common_domain表中读取这些配置信息。整个流程处理略显复杂,最终都会得到一个$_ENV['curapp']作为当前app处理请求或者一个$url 作为重定向的url(如下图)。

    感觉应该很简单的逻辑,代码形式上却比较复杂,这应该是Discuz的通病,从很早的系统上继承而来,重构力度不够,导致代码结构越来越糟。

    这里对HTTP_HOST的处理上面上,有明显的逻辑错误,在一些特别的host下,应该是要失效的。index.php里面业务处理不多,就分析到这里吧,不过多浪费时间了。

转载于:https://www.cnblogs.com/alleyonline/p/8371558.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值