前言
如果不是行业相关,也就轻描淡写 , F5 刷新过去算了 。可是,给出的提示信息那么的熟悉,老味道,老配方,是可忍孰不可忍 。
与其说是BUG,不如说是偶发现象,这样开发人员可无需修复了 。祝你们玩的开心 。
官网首页 home.html
怎么发生的
正常进入 kuai.360.cn 之后,给出这么一个 json 字符串,
{&
格式化之后为
{&
为什么首页会产生这个错误呢 , 到底是那个环节出现的?是 web 服务器吗?是应用抛出的异常吗?查看之后发现,是首页网址进行了重定向 。被索引到这个资源访问位置
http://kuai.360.cn/%3Cbr%20/%3E%0A%3Cb%3ENotice%3C/b%3E:%20Undefined%20variable:%20redis%20in%20%3Cb%3E/usr/share/nginx/html/logger.php%3C/b%3E%20on%20line%20%3Cb%3E228%3C/b%3E%3Cbr%20/%3E%0A%3Cbr%20/%3E%0A%3Cb%3EFatal%20error%3C/b%3E:%20Call%20to%20a%20member%20function%20select()%20on%20a%20non-object%20in%20%3Cb%3E/usr/share/nginx/html/logger.php%3C/b%3E%20on%20line%20%3Cb%3E228%3C/b%3E%3Cbr%20/%3E%0A
对上述字符串进行 urldecode 转码得到
http://kuai.360.cn/<br />
<b>Notice</b>: Undefined variable: redis in <b>/usr/share/nginx/html/logger.php</b> on line <b>228</b><br />
<br />
<b>Fatal error</b>: Call to a member function select() on a non-object in <b>/usr/share/nginx/html/logger.php</b> on line <b>228</b><br />
已经很明显的指出了错误位置,文件
/usr/share/nginx/html/logger.php
第228行变量名 redis 没有定义 。这个错误级别是 Notice 。
还有一个致命错误 Fatal error,大概是这个错误之后抛出的 。
Call to a member function select() on a non-object
然后使用 select() 方法 , 作用在了一个空对象上 。
猜测,该处代码类似是
if ($conditions){
$redis = blabla;
}
$redis->select(&
为什么提示信息Notice也会抛出?这与PHP的运行解析机制有关,设置项
error_reporting = E_ALL
这是 php.ini 配置文件配置项,显然本项目没有修改 。或者在 logger.php 文件内显式声明 。所以才会把所有的故障信息抛出给客户端显示 。
JSON 字符串是如何抛出的?
经过上面的提示,以及访问所在文件位置,可以推断
由于水平有限,只能挖掘到这里了 , 请大神在评论区附上更深度的发现 。
正常流程的请求
如果该网页访问正常,会有哪些内容和请求呢 。在谷歌浏览器内使用 F12 进行查看 。
可以看到,整体页面加载完毕,使用了 jQuery 发起的四个AJAX请求 。我们将有数据返回的请求贴在下面 。
Request URL: https://kuai.360.cn/pb/lists?type=all&page=1&sign=50caadb0eca62c816aba2094871a4b1f&t=1581337695467&
返回的内容是JSON,经过美化后如下图:
网络请求返回JSON数据结构
网页内的动态数据均使用此方式渲染 。
【奇虎360:一个官网首页的偶发 Bug 分析】以上就是朝夕生活(www.30zx.com)关于“奇虎360:一个官网首页的偶发 Bug 分析”的详细内容,希望对大家有所帮助!
猜你喜欢
- 电脑频繁死机怎么办,做到这5点 电脑不卡顿
- 常见的DNS域名劫持方式及解决方法
- 你知道域名劫持的重要性吗?教你防范网站域名劫持
- 记录一次WIN10系统无法打开开始菜单的解决过程
- 修复Win10左键"开始"无反应问题
- Win10系统电脑开始菜单栏打不开怎么解决?
- win10任务管理器被禁用的解决教程
- “电力”选择:聪慧购买充电宝的窍门 十大品牌充电宝排行榜
- 在不少观赏鱼生小鱼或者产卵孳生中,咱们要学会有舍有得!