乐于分享
好东西不私藏

第十七期:软件和数据完整性失败(Software and Data Integrity Failures)· 理论篇

第十七期:软件和数据完整性失败(Software and Data Integrity Failures)· 理论篇

前言

2020年12月,全球最大的软件供应链攻击震惊了整个安全行业。

攻击者入侵了 SolarWinds 的 CI/CD 管道,在官方签名的 Orion 更新包中植入了 Sunburst 后门程序。这个更新包经过了合法的数字签名,通过了 SolarWinds 官方的发布流程,推送到了约 18,000 家企业和政府机构。FireEye(现Mandiant)、Microsoft、VMware、Cisco 等顶级科技公司纷纷中招,美国国土安全部、财政部、商务部全面沦陷。

这一切发生的前提只有一个:软件供应链的完整性验证机制存在缺陷

这是 OWASP Top 10 2021 中 A08: Software and Data Integrity Failures(软件和数据完整性失败)的典型案例。此类别在 2017 版中并未独立出现,它是将不安全的反序列化、CI/CD 供应链问题、不安全的自动更新等零散漏洞整合为一个统一的攻击面——攻击者不再需要正面攻破你的系统,只需要攻破你信任的源头


一、为什么软件和数据完整性是安全问题

1.1 信任链与完整性验证的本质

现代软件系统的运行,建立在一系列隐式信任假设之上:

用户程序
    ↓ 依赖
第三方库(Maven/ npm / PyPI)
    ↓ 依赖
基础镜像(Docker Hub / 公共仓库)
    ↓ 来源
自动更新服务
    ↓ 来源
CI/CD 管道(代码提交 → 构建 → 测试 → 发布)

每一层都默认上游提供的内容是可信的、完整的、未被篡改的。一旦某个环节的完整性验证缺失或不足,攻击者就可以从最薄弱的信任节点发起攻击,而下游所有依赖方全部沦陷。

1.2 完整性保护的三要素

要素
定义
失效后果
真实性(Authenticity)
我收到的内容确实来自我所认为的那个来源
攻击者伪装成合法发布者
完整性(Integrity)
内容在传输/存储过程中未被篡改
恶意代码被植入合法软件包
可用性(Availability)
完整性验证不妨碍正常业务流程
安全机制被滥用导致 DoS

1.3 从 SolarWinds 看软件供应链攻击链

攻击链分析:

Phase1: CI/CD 入侵
    攻击者通过密码喷洒(Password Spraying)获得 SolarWinds 内部 VPN 凭证
    访问内部 Exchange 服务器,发现 Orion 平台构建系统权限配置不当
    ↓

Phase 2: 代码注入
    在 Orion 源代码中植入 Sunburst 后门(隐藏在合法的类/函数中)
    构建系统使用被污染的源码打包成更新包
    ↓

Phase 3: 签名绕过
    SolarWinds 的代码签名流程存在缺陷:
    签名发生在构建之后,但构建过程本身未被监控
    攻击者的代码在签名后才被插入(build re-injection)
    ↓

Phase 4: 恶意更新分发
    受污染的更新包通过官方渠道推送,附有合法数字签名
    自动更新机制无完整性强校验,直接安装
    ↓

Phase 5: 横向移动(后渗透)
    Sunburst 后门建立 C2 通信,窃取凭证,横向移动
    部分目标被进一步部署了 TEARDROP / RAINDROP 等二次攻击工具

为什么传统安全设备无法检测:

  • 更新包有合法签名 → SSL/TLS 加密传输 → 内容加密 → WAF/IDS 看不到
  • 后门代码与合法代码混淆 → 静态扫描无法识别
  • C2 通信伪装成正常 DNS 查询 → 防火墙放行

二、软件和数据完整性失败的分类

2.1 不安全的反序列化(Insecure Deserialization)

原理:

序列化是将对象转换为字节流的过程(便于存储或传输),反序列化是将字节流还原为对象的过程。许多编程语言内置序列化机制,开发者经常反序列化来自不可信来源的数据。

风险所在:

反序列化不仅仅是"还原数据",在某些语言中,它会触发对象构造、getter/setter 等副作用。如果反序列化过程中触发了危险方法(如 Java 的 readObject、Python 的 __reduce__),攻击者可以通过构造特定的序列化 payload,在反序列化时执行任意代码。

Python pickle 反序列化示意(原理层面):

# pickle.loads() 从不可信数据恢复对象
# 如果对象定义了 __reduce__,反序列化时会自动调用
import pickle

classMalicious:
def__reduce__(self):
# 反序列化时执行:os.system('id > /tmp/pwned')
import os
return (os.system, ('id > /tmp/pwned',))

# 攻击者序列化这个对象
malicious_data = pickle.dumps(Malicious())

# 受害者反序列化,代码即执行
pickle.loads(malicious_data)  # RCE!

OWASP 分类依据:

反序列化漏洞的危害极大(通常直接 RCE),但利用条件相对复杂(需要目标使用特定序列化库+接受不可信输入)。在 2017 版 OWASP 中曾与注入合并,在 2021 版中部分归入 A08。


2.2 不安全的 CI/CD 管道(Insecure CI/CD Pipeline)

攻击面分析:

CI/CD 管道是现代软件交付的核心,通常包括:代码提交 → 静态扫描 → 构建 → 单元测试 → 集成测试 → 制品签名 → 镜像推送 → 部署。

每个环节都是潜在的攻击面:

环节
风险
真实案例
代码提交
恶意代码混入正规提交
GitHub Actions 供应链攻击(2021)
依赖引入
依赖库被劫持或投毒
PyPI event-stream 投毒(2018)
构建系统
构建脚本被篡改,产物被植入后门
SolarWinds Orion(2020)
镜像仓库
拉取被污染的基础镜像
Homebrew curl 投毒(2021)
签名流程
签名密钥泄露或签名环节被绕过
ASUS 签名证书泄露(2019)
部署配置
Kubernetes YAML 被篡改,部署恶意容器
Tesla K8s 挖矿事件(2018)

CI/CD 管道攻击的独特危害:

  1. 放大效应
    :一次成功的 CI/CD 攻击,可以自动扩散到所有使用该产品的客户
  2. 信任滥用
    :恶意内容通过了所有安全检查流程(因为安全检查本身也被攻击者利用)
  3. 持久化
    :后门被嵌入在定期更新的软件中,可以长期潜伏

2.3 不安全的自动更新机制(Insecure Auto-Update)

原理:

软件应用的自动更新功能,通常遵循以下流程:

检查更新服务器 → 下载更新包 → 验证版本号 → 安装

如果完整性验证缺失或不足:

缺陷场景
攻击方式
只验证版本号,不验证签名
攻击者搭建仿冒更新服务器,推送高版本恶意更新
签名验证使用硬编码公钥
公钥泄露后,攻击者可签署任意版本
通过 HTTP 下载更新包(无 TLS)
中间人攻击注入恶意更新包
更新包放在可写的 NFS/SMB 共享上
本地攻击者直接替换更新包

真实案例: Notepad++ 供应链事件(2017):

攻击者入侵了 Notepad++ 的 SourceForge 文件分发账户,将官方安装包替换为植入木马的版本。虽然最终因数字签名不匹配被部分安全软件拦截,但事件暴露了分发环节的完整性验证缺失问题。


2.4 依赖来源不验证(Reliance on Untrusted Data Without Integrity Check)

核心问题:

应用程序经常需要:

  • 从 CDN 加载 JavaScript 库
  • 从外部 API 获取配置数据
  • 从插件市场安装扩展
  • 从配置文件读取序列化数据

如果这些外部数据没有完整性验证(数字签名/哈希校验),攻击者可以通过以下方式实施攻击:

攻击向量分类:

外部数据来源 → 攻击方式
─────────────────────────────────────────────
CDN 劫持(路由投毒/DNS 劫持)→ 替换 JS 库为恶意版本
    → 后果:XSS 窃取 Cookie、键盘记录、页面注入

API 响应无签名验证 → 中间人篡改 API 响应
    → 后果:业务逻辑被绕过、敏感数据被篡改

插件市场账户被入侵 → 发布含后门的插件更新
    → 后果:RCE 或数据窃取

序列化数据无完整性校验 → 反序列化攻击(见 2.1)
    → 后果:RCE

第三方配置文件被篡改 → 注入恶意配置改变应用行为
    → 后果:权限提升、认证绕过

特别警示:

2021 年,攻击者通过抢注 PyPI 弃用包名称(Typosquatting),发布了 requests(正确包名)的伪造版本 requesetsrequestrequeset 等,成功骗取开发者的 pip 安装。这些伪造包包含窃取环境变量的代码,在 CI/CD 管道中自动执行。


2.5 序列化数据的完整性失败

除了 2.1 中讨论的反序列化 RCE,更广泛的序列化数据完整性问题还包括:

Cookie / Session 篡改:

某些应用将敏感数据序列化后存储在 Cookie 或 localStorage 中,客户端可以通过修改序列化数据绕过业务逻辑(如修改 role: "user" 为 role: "admin")。

JWT 签名绕过:

JSON Web Token 如果使用了 alg: none(无签名)或使用了弱算法(如 HS256 但使用公开知道的公钥作为密钥),攻击者可以伪造任意权限的 JWT。

配置文件注入:

应用读取 YAML/JSON 配置文件时,如果配置文件来源不可信且缺乏 Schema 校验,攻击者可以通过注入恶意配置(如 SpEL 表达式、模板注入、JNDI 引用)实现代码执行。


三、真实案例深度解析

3.1 Equifax 数据泄露与 Apache Struts 反序列化(2017)

事件背景:

Equifax 是美国三大信用报告机构之一。2017年9月,宣布发现了一起影响 1.47 亿人的数据泄露事件。攻击者利用 Apache Struts 2 的 CVE-2017-5638(S2-045)远程代码执行漏洞,窃取了姓名、SSN、出生日期、地址、驾驶证号码、信用卡号等敏感数据。

漏洞原理(技术层面):

Apache Struts 2 的 Jakarta Multipart Parser 在处理 Content-Type 头时存在漏洞。攻击者可以通过构造恶意的 Content-Type 头,注入 OGNL 表达式,在服务器端执行任意代码:

Content-Type: %{(#_='multipart/form-data').(#[#context:['com.opensymphony.xwork2.dispatcher.HttpServletResponse']].addHeader('X',...)}}

OGNL 表达式在处理时被 Struts 2 的过滤器解析,攻击者可以借此执行系统命令。

数据完整性失败的维度:

  • 反序列化层面
    :Struts 2 使用 OGNL 表达式解析用户输入,OGNL 反序列化过程中触发代码执行
  • 输入验证层面
    :Content-Type 头本不应该被用作表达式求值,但 Struts 2 错误地将用户输入传递给了 OGNL 引擎
  • 补丁验证层面
    :Apache 在 2017 年 3 月已发布 S2-045 修复补丁,但 Equifax 直至 5 月仍未打补丁(补丁验证机制缺失)

损失:

  • 约 1.47 亿用户数据泄露
  • 集体诉讼赔偿 7 亿美元
  • CEO、CSO 辞职
  • FTC 罚款 5.75 亿美元

3.2 event-stream npm 包投毒事件(2018)

事件背景:

event-stream 是一个广泛使用的 Node.js 工具库(每周下载量超过百万)。攻击者通过 GitHub 建立了对该项目的信任后,向 npm 提交了代码捐赠,将自己的账户添加为 event-stream 的维护者之一。

攻击过程:

攻击者联系 event-stream 原作者,提出代码捐赠
    ↓
原作者将 npm 发布权限转让给攻击者
    ↓
攻击者发布 event-streamv3.3.6,在依赖中添加 flatmap-stream@0.1.1
    ↓
flatmap-stream 包含恶意代码:窃取比特币钱包私钥
    ↓
大量 Node.js 应用(包括 Copay 比特币钱包)自动安装了带毒版本
    ↓
Copay 用户的比特币私钥被窃取

数据完整性失败的维度:

  • 供应链信任
    :npm 的代码捐赠机制缺乏安全性审核,没有验证新维护者的真实身份
  • 依赖完整性
    :event-stream v3.3.6 的 package.json 中引入了一个看似无害的 flatmap-stream 依赖,没有人会想到这会是一个专门窃取比特币钱包的后门
  • 版本锁定缺失
    :大多数项目使用 ^3.3.4 这样的宽松版本范围,自动接受了 3.3.6 恶意更新

3.3 Homebrew GitHub Actions 供应链攻击(2021)

事件背景:

Homebrew 是 macOS 最流行的包管理器。2021年4月,一名攻击者利用 GitHub Actions 的自动化流程漏洞,向 Homebrew 的 Homebrew-core 仓库提交了一个恶意 GitHub Actions 工作流。

攻击方式:

攻击者向 Homebrew-core 仓库提交代码贡献(正常流程)
    ↓
代码贡献通过审查后,被合并到主分支
    ↓
GitHub Actions 自动触发 brew bump-formula-pr 工作流更新版本
    ↓
攻击者在工作流中注入恶意代码:提取 GitHub Actions secret 和 API 令牌
    ↓
以 Homebrew 官方 GitHub 机器人身份执行,权限极大

关键问题:

Homebrew 的 GitHub Actions 工作流使用了被攻击者控制的工作流触发条件(pull_request_target),使得攻击者的代码可以在 Homebrew 官方 GitHub token 的上下文中执行,从而窃取仓库权限。


四、软件和数据完整性失败的危害评估

4.1 危害等级矩阵

维度
低(1)
中(2)
高(3)
极高(4)
可利用性
需要本地访问
需要普通用户权限
可远程利用
自动化工具可用
普遍性
仅影响特定框架
影响 30% 以下应用
影响 30-70% 应用
影响 70%+ 应用
影响范围
仅影响单一实例
影响单一租户
影响整个系统
影响供应链下游所有用户
技术影响
信息泄露
权限绕过
数据篡改
远程代码执行
业务影响
轻微
中断服务
数据泄露
声誉损失 + 法律风险

4.2 为什么 A08 在 OWASP Top 10 中独立成类

整合逻辑:

2017 版 OWASP 中,不安全反序列化是 A08(注入的一部分),不安全的 CI/CD 和供应链问题没有独立分类。随着 SolarWinds、Log4Shell、event-stream 等大型供应链安全事件的频发,2021 版将这些问题整合为 A08,强调的核心观点是:

现代应用的威胁,已经从"正面攻破应用"转向"攻破应用所信任的一切"


五、防御思路概览(预告)

本期是原理与分类篇。后续两期将分别从实战利用和防御方案两个维度展开。防御方案篇将覆盖:

  • CI/CD 管道安全审计与加固
  • 软件签名与完整性验证最佳实践
  • 依赖安全审计(SBOM + 依赖扫描)
  • 自动更新安全架构设计
  • 序列化安全的全面解决方案

📚 参考框架

标准/框架
相关内容
OWASP Top 10 2021
A08: Software and Data Integrity Failures
NIST SSDF
Protect the Software Supply Chain (PSCID)
MITRE ATT&CK
Supply Chain Compromise (S0174/S0559/S0576)
ISO/IEC 27036
供应链安全控制
SLSA Framework
Software Supply Chain Security Levels
Sigstore
开源软件签名与验证生态
SPDX / CycloneDX
软件物料清单(SBOM)标准

🛡️ 理论先行,实践跟进
⚠️ 提示:本文仅供网络安全学习研究使用。所有技术方案应在获得合法授权的范围内使用。未授权的安全测试违反中国《网络安全法》及相关法规。

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-14 16:10:00 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/855775.html
  2. 运行时间 : 0.212325s [ 吞吐率:4.71req/s ] 内存消耗:4,692.48kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=08f696a7189b4ab5dec0f84b76cc54ac
  1. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_static.php ( 6.05 KB )
  7. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/ralouphie/getallheaders/src/getallheaders.php ( 1.60 KB )
  10. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  11. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  12. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  13. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  14. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  15. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  16. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  17. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  18. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  19. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions_include.php ( 0.16 KB )
  21. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions.php ( 5.54 KB )
  22. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  23. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  24. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  25. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/provider.php ( 0.19 KB )
  26. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  27. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  28. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  29. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/common.php ( 0.03 KB )
  30. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  32. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/alipay.php ( 3.59 KB )
  33. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  34. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/app.php ( 0.95 KB )
  35. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cache.php ( 0.78 KB )
  36. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/console.php ( 0.23 KB )
  37. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cookie.php ( 0.56 KB )
  38. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/database.php ( 2.48 KB )
  39. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/filesystem.php ( 0.61 KB )
  40. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/lang.php ( 0.91 KB )
  41. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/log.php ( 1.35 KB )
  42. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/middleware.php ( 0.19 KB )
  43. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/route.php ( 1.89 KB )
  44. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/session.php ( 0.57 KB )
  45. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/trace.php ( 0.34 KB )
  46. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/view.php ( 0.82 KB )
  47. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/event.php ( 0.25 KB )
  48. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  49. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/service.php ( 0.13 KB )
  50. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/AppService.php ( 0.26 KB )
  51. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  52. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  53. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  54. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  55. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  56. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/services.php ( 0.14 KB )
  57. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  58. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  59. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  60. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  61. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  62. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  63. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  64. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  65. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  66. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  67. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  68. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  69. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  70. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  71. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  72. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  73. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  74. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  75. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  76. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  77. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  78. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  79. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  80. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  81. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  82. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  83. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  84. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  85. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  86. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  87. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/Request.php ( 0.09 KB )
  88. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  89. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/middleware.php ( 0.25 KB )
  90. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  91. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  92. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  93. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  94. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  95. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  96. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  97. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  98. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  99. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  100. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  101. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  102. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  103. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/route/app.php ( 3.94 KB )
  104. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  105. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  106. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Index.php ( 9.87 KB )
  108. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/BaseController.php ( 2.05 KB )
  109. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  110. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  111. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  112. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  113. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  114. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  115. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  116. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  117. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  118. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  119. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  120. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  121. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  122. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  123. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  124. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  125. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  126. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  127. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  128. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  129. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  130. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  131. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  132. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  133. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  134. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  135. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Es.php ( 3.30 KB )
  136. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  137. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  138. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  139. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  140. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  141. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  142. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  143. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  144. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/runtime/temp/c935550e3e8a3a4c27dd94e439343fdf.php ( 31.50 KB )
  145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000827s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000932s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000365s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000268s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000564s ]
  6. SELECT * FROM `set` [ RunTime:0.000254s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000552s ]
  8. SELECT * FROM `article` WHERE `id` = 855775 LIMIT 1 [ RunTime:0.000653s ]
  9. UPDATE `article` SET `lasttime` = 1784016601 WHERE `id` = 855775 [ RunTime:0.016355s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000397s ]
  11. SELECT * FROM `article` WHERE `id` < 855775 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000577s ]
  12. SELECT * FROM `article` WHERE `id` > 855775 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.005909s ]
  13. SELECT * FROM `article` WHERE `id` < 855775 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000675s ]
  14. SELECT * FROM `article` WHERE `id` < 855775 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.000768s ]
  15. SELECT * FROM `article` WHERE `id` < 855775 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.000827s ]
0.216658s