乐于分享
好东西不私藏

第7章:软件供应链安全!——系统讲解数据安全

第7章:软件供应链安全!——系统讲解数据安全

场景描述

密码所在的代码从开发到部署,需要经过复杂的软件供应链——开源依赖、构建工具、CI/CD管道、容器镜像等环节。每个环节都可能成为攻击者的突破口。

软件供应链攻击近年急剧增加:从SolarWinds的编译器投毒,到Log4j的漏洞爆发,再到Codecov的脚本篡改,攻击者发现破坏上游比攻击单个目标更有效。

技术细节

软件供应链全景

通俗理解:像"食品从农田到餐桌"的全流程,每个环节都可能被污染。

各环节风险

环节
风险点
攻击方式
开发环境
IDE、编辑器插件
恶意插件窃取代码
源码仓库
提交历史、分支
硬编码密钥、配置泄露
依赖管理
开源包、私有包
依赖混淆、恶意包
构建系统
CI/CD服务器
凭证泄露、构建注入
制品仓库
镜像、二进制包
镜像投毒、签名伪造

GitHub 仓库:https://github.com/gb233/what-happens-when-you-login存放本系列文章



开源依赖安全管理

通俗理解:像"食材采购"——你用的开源包可能含有"过期"或"有毒"的成分。

SCA工具(Software Composition Analysis)

功能

  • 自动识别项目中使用的开源组件
  • 检测已知漏洞(CVE匹配)
  • 识别许可证合规风险
  • 生成SBOM软件物料清单

主流工具对比

工具
特点
适用场景
Snyk
实时漏洞数据库、IDE集成
企业级DevSecOps
Dependabot
GitHub原生、自动PR修复
GitHub仓库
OWASP DC
开源免费、CI集成
预算有限团队
JFrog Xray
深度递归扫描、策略引擎
复杂依赖项目

GitHub Dependabot配置示例: 

依赖锁定与哈希校验

为什么需要锁定: 

锁定文件对比

工具
锁定文件
特点
npm
package-lock.json
标准格式
Yarn
yarn.lock
确定性安装
pnpm
pnpm-lock.yaml
节省磁盘空间
Poetry
poetry.lock
Python生态
Cargo
Cargo.lock
Rust生态

CI/CD管道安全

通俗理解:像"食品加工厂"的安检——确保每个工序都不被篡改。

最小权限原则

危险配置: 

安全配置: 

密钥管理

永远不要做的事情: 

正确做法: 

流水线隔离

安全实践

  • 不可变构建
    :每次构建使用全新的干净环境
  • 沙箱执行
    :构建步骤在隔离容器中运行
  • 只读挂载
    :源码目录只读,防止构建过程篡改
  • 网络隔离
    :构建环境限制出站连接

SBOM软件物料清单

通俗理解:像"食品成分表"——清晰列出软件包含的所有组件及其来源。

SBOM价值

Log4j应急响应案例: 

SBOM格式

SPDX(Software Package Data Exchange)

  • Linux基金会标准
  • 丰富的元数据(许可证、版权、校验和)
  • 支持多种文件格式(Tag-Value、JSON、RDF、YAML)

CycloneDX

  • OWASP项目
  • 安全导向设计
  • 漏洞利用、补丁状态追踪

生成工具示例: 


代码签名与验证

通俗理解:像"防伪标签"——确保软件确实来自声称的发布者。

GPG签名

签名流程: 

GitHub分支保护: 

Sigstore/Cosign(无密钥签名)

传统签名的问题

  • 私钥管理困难(存储、轮换、泄露风险)
  • 证书颁发复杂
  • 验证链冗长

Sigstore解决方案: 

Kubernetes验证: 


开发环境安全

通俗理解:像"厨房卫生"——污染源可能从开发环境引入。

IDE插件安全

攻击案例

  • 2021年:VS Code恶意扩展窃取源代码
  • 攻击者发布功能相似扩展,植入后门
  • 开发者安装后,代码自动上传到攻击者服务器

防护措施

  • 官方市场
    :优先使用官方验证的扩展
  • 权限审查
    :检查扩展请求的权限
  • 源码审查
    :关键扩展审查源码后再安装
  • 隔离开发
    :敏感项目使用隔离的开发环境

Git钩子(Pre-commit)

检测敏感信息提交: 

预提交框架(pre-commit): 

开发容器(Dev Container)

隔离开发环境: 


代码仓库安全

通俗理解:像"库房管理"——确保源代码不被篡改和泄露。

分支保护策略

GitHub/GitLab配置: 

敏感信息检测

git-secrets: 

truffleHog(深度扫描): 

攻击向量

1. 依赖混淆攻击(Dependency Confusion)

通俗理解:像"快递误投"——攻击者发布与内部私有包同名的公开包,导致构建系统自动拉取恶意公开包。

攻击原理: 

真实案例

  • 2021年,安全研究员Alex Birsan利用此技术成功入侵35+家科技公司
  • 包括Apple、Microsoft、Tesla、Uber等
  • 通过命名空间混淆获取内部系统访问权限

防护措施

  • 作用域隔离
    :使用 @company/ 作用域区分内外包
  • 版本锁定
    :使用 package-lock.json、yarn.lock 锁定确切版本
  • 私有仓库代理
    :Nexus、Artifactory代理所有依赖查询
  • 命名空间注册
    :在公开仓库预注册公司命名空间

2. 恶意IDE插件

通俗理解:像"被污染的厨具"——开发工具本身成为攻击渠道。

攻击方式

  • 发布功能相似但植入后门的VS Code/Vim扩展
  • 利用IDE的API访问源代码、文件系统、环境变量
  • 通过自动更新机制推送恶意版本

真实案例

  • 2021年,VS Code恶意扩展窃取开发者源代码
  • 超过100万安装量的扩展被发现包含挖矿代码
  • 某些扩展窃取AWS凭证并上传到攻击者服务器

防护措施

  • 官方市场
    :仅从官方市场安装扩展
  • 权限最小化
    :审查扩展请求的权限
  • 离线审查
    :高敏感项目离线审查扩展源码
  • 定期审计
    :检查已安装扩展的更新日志和行为

3. CI/CD凭证泄露

通俗理解:像"工厂钥匙管理不善"——自动化系统的权限被窃取。

泄露途径

日志泄露: 

缓存中毒: 

环境变量注入: 

防护措施

  • 不在PR中使用机密
    :fork的PR不应访问机密
  • 日志脱敏
    :CI系统自动过滤机密信息
  • 短期凭证
    :使用OIDC代替长期密钥
  • 权限最小化
    :工作流仅拥有必要权限

4. Typosquatting(拼写抢占)

通俗理解:像"高仿商品"——利用名称相似性诱导安装恶意包。

攻击方式: 

真实案例

  • 2017年,PyPI发现多个恶意包:acqusition(拼写错误acquisition)、reqeusts(requests)
  • 包含后门代码,安装后窃取系统信息
  • 数万次下载后才被发现

防护措施

  • 拼写检查
    :安装前仔细核对包名
  • 官方来源
    :优先从官方渠道获取安装命令
  • 下载量检查
    :检查包的下载量和维护状态
  • 代码审查
    :首次安装时审查包源码

5. 上游仓库投毒

通俗理解:像"水源污染"——攻击者直接入侵开源项目的官方仓库。

攻击方式

  • 入侵开源项目维护者的账号
  • 在合法包中植入恶意代码后发布
  • 利用供应链传递性影响所有依赖该包的项目

真实案例

ua-parser-js(2021年)

  • 维护者账号被入侵
  • 发布带挖矿木马和窃取脚本的版本
  • 影响数万项目

PyTorch(2022年)

  • 依赖混淆攻击:攻击者将恶意包 torchtriton 发布至 PyPI,与内部私有源同名
  • PyTorch nightly 用户安装时优先拉取 PyPI 恶意版本,导致 SSH 密钥等凭证被窃取
  • 此为典型**依赖混淆(Dependency Confusion)**攻击,非发布流程被篡改

event-stream(2018年)

  • 维护者将包转让给"善意"贡献者
  • 贡献者在依赖中添加窃取比特币的代码
  • 影响数百万项目

防护措施

  • 版本锁定
    :不自动更新到最新版本
  • 代码审查
    :关键依赖审查每次更新
  • 私有仓库
    :关键依赖fork到私有仓库
  • 漏洞监控
    :订阅依赖的安全通告

详细MITRE ATT&CK分析

T1195.001 - Supply Chain Compromise: Software Dependencies

  • 战术
    : Initial Access
  • 技术
    : 通过恶意依赖获取初始访问
  • 检测
    : 依赖变更监控、异常网络连接
  • 缓解
    : M1047 (Audit), M1048 (Application Isolation)

T1195.002 - Supply Chain Compromise: Software Supply Chain

  • 战术
    : Initial Access
  • 技术
    : 上游仓库投毒、构建系统入侵
  • 检测
    : SBOM变更审计、构建过程监控
  • 缓解
    : M1047 (Audit), M1053 (Data Backup)

T1199 - Trusted Relationship

  • 战术
    : Initial Access
  • 技术
    : 利用受信任的依赖关系入侵
  • 检测
    : 第三方风险评估、供应商安全审查
  • 缓解
    : M1018 (User Account Management)

防护机制

企业实践:Google SLSA框架

SLSA(Supply Chain Levels for Software Artifacts) 是Google提出的供应链安全框架,分为4个级别:

级别
要求
描述
L1
构建过程文档化
知道软件是如何构建的
L2
版本控制和自动化构建
使用版本控制和自动化构建系统
L3
源码和构建平台的可信度
构建过程不可篡改,防止中间人攻击
L4
双角色控制和可重现构建
最高安全级别,任何人可独立验证

Google实施要点

  • 所有内部软件达到SLSA L3以上
  • 关键基础设施达到SLSA L4
  • 使用Binary Authorization强制执行签名验证
  • 构建环境使用Google Cloud Build的托管服务

企业实践:SolarWinds教训

事件回顾(2020年)

  • 攻击者入侵SolarWinds的构建系统
  • 在Orion软件中植入后门(SUNBURST)
  • 通过官方更新渠道分发给18,000+客户
  • 包括美国政府部门和财富500强企业

根本原因

  • 构建环境缺乏隔离和监控
  • 代码签名过程未检测到恶意代码
  • 缺乏构建产出物的完整性验证

改进措施

  • 构建隔离
    :构建环境与开发环境完全隔离
  • 多因素签名
    :需要多人审批才能签名发布
  • SBOM生成
    :每次构建生成完整物料清单
  • 行为监控
    :构建环境异常行为实时监控

企业实践:Log4j应急响应

事件回顾(2021年12月)

  • Apache Log4j 2.x被发现存在Log4Shell漏洞(CVE-2021-44228)
  • 影响全球数亿Java应用
  • CVSS评分10.0(最严重级别)

有SBOM的企业: 

无SBOM的企业: 

教训

  • SBOM是应急响应的基础
  • 需要自动化的依赖扫描工具
  • 深度依赖(依赖的依赖)同样危险

配置示例:安全CI/CD流水线

触类旁通

依赖库 vs 食材供应商:一家出问题,所有餐厅受影响

类比起源

上海有100家餐厅,全都从同一家供应商采购食材。某天,供应商的食材被检出含有有害物质。这100家餐厅无论厨师多好、厨房多干净,做出来的菜都有问题——因为问题出在更上游。Log4j漏洞在2021年底爆发时,正是这个场景的完美再现:全球数亿应用使用Log4j记录日志,这个"食材"出了问题,所有"餐厅"都受影响,而且很多餐厅甚至不知道自己用了这种食材。

软件供应链的恐怖之处在于:你的代码可能是完美的,但你的依赖的依赖的依赖里藏着一颗定时炸弹。

技术概念
生活场景
关键相似点
直接依赖库
直接采购的食材
你明确知道使用了
间接依赖(传递依赖)
食材里的添加剂(你不知道)
深层嵌套,不易察觉
供应链攻击(如Log4Shell)
食材污染波及所有下游餐厅
上游问题影响全部下游
依赖锁定(lock文件)
固定供应商并记录批次号
确保使用特定版本
漏洞扫描(SCA)
食品安全检测
主动检查是否有问题
版本升级修复
更换供应商/批次
用已修复版本替换

延伸思考

  • 类比零部件供应商
    :汽车制造商依赖上千个零部件供应商,某个刹车片供应商出问题,整条汽车产线都要停工召回——这就是为什么头部企业需要SBOM(物料清单)来快速定位受影响产品
  • 从食材到餐具
    :供应链攻击不只针对代码,也包括CI/CD工具、Docker基础镜像、npm registry——整个开发工具链都是攻击面
  • 思考边界
    :开源软件的透明性是把双刃剑。你能看到代码(好事),但攻击者也能审计代码寻找漏洞(坏事)。封闭源码只是安全感,不是真正的安全

SBOM vs 食品成分表:清楚知道里面有什么

类比起源

你拿起一包薯片,翻到背面,成分表写着:马铃薯、植物油、食盐、调味料(谷氨酸钠、5'-核苷酸二钠)……你知道这里面有什么,如果你对某种成分过敏,可以立刻决定要不要买。SBOM(软件物料清单)就是软件的成分表——它列出软件中使用的所有开源组件、版本号、许可证和已知漏洞。

当一个新的CVE(公共漏洞)发布时,有SBOM的组织可以在5分钟内查出"我们的哪些产品用了这个组件";没有SBOM的组织可能需要几天甚至几周,靠人工翻遍所有代码库。

技术概念
生活场景
关键相似点
SBOM清单
食品成分表
明确列出所有"原料"
组件名+版本号
成分名+含量
精确描述每个成分
许可证信息
生产商/产地信息
来源和合规性说明
CVE漏洞映射
成分过敏原标注
标识已知风险
SBOM自动生成
自动打印成分标签
生产流程中自动生成
法规要求SBOM
FDA要求成分标签
合规驱动的透明度

延伸思考

  • 类比医院用药记录
    :医生查看患者过去的用药史(SBOM),才能判断新开的药会不会和之前的药相互作用(漏洞相互影响)。没有记录,就是在盲开药
  • SBOM的局限性
    :成分表告诉你里面有什么,但不告诉你做工是否卫生(代码质量)、是否过期(版本是否维护)。SBOM是起点,不是终点
  • 思考边界
    :美国政府2021年行政令强制要求政府供应商提供SBOM,这标志着SBOM从"最佳实践"变为"法规要求"——就像食品成分标注从自愿到强制

签名验证 vs 防伪标签:确认是正版不是假货

类比起源

你买了一双耐克球鞋,鞋盒上有防伪标签,扫码后跳转到官方验真页面,显示"正品"。这个防伪体系解决的问题是:这双鞋真的是耐克生产的吗?还是仿冒品?代码签名解决的是完全相同的问题——这个软件包/容器镜像/代码提交,真的是官方发布的吗?还是被中间人替换过?

Sigstore(现代代码签名基础设施)就像为每个软件版本提供一张官方防伪证书,记录了"谁"在"什么时候"通过"什么CI/CD流程"产出了这个制品。任何人都可以验证,任何篡改都会让签名失效。

技术概念
生活场景
关键相似点
代码签名
商品防伪标签
证明来源真实性
私钥签名
官方防伪印章
只有持有者才能创建
公钥验证
消费者扫码验真
任何人都能验证
签名失效/不匹配
防伪码失效/重复使用
篡改或伪造的信号
Cosign/Sigstore
政府统一防伪平台
权威、可信的验证体系
Artifact签名
商品出厂检验报告
来源可追溯

延伸思考

  • 类比公证处
    :代码签名 + 透明日志(Rekor)就像公证处公证文件——不只是签名,还把签名记录在公开账本里,事后无法抵赖
  • 签名 vs 加密
    :签名证明"这是我发的",加密保证"只有你能看"。两者解决不同问题,经常配合使用。比如加密传输(TLS)+内容签名(代码签名)双重保障
  • 思考边界
    :防伪体系的强度取决于私钥的安全性。如果攻击者窃取了签名私钥(就像仿冒者获得了真正的防伪印章),整个信任链就崩溃了——这就是密钥管理比签名算法本身更重要的原因

恶意包投毒 vs 食品掺假:混入正规渠道的危险品

类比起源

2008年中国三聚氰胺奶粉事件震惊全球:不法商家在婴幼儿奶粉中掺入三聚氰胺(可以让蛋白质检测数据"达标")。奶粉通过了正常的流通渠道、正规的超市上架,外包装一切正常,质检报告也合格——但里面有毒。软件供应链投毒是完全相同的模式:攻击者向npm/PyPI注册与流行包名相近的恶意包(typosquatting),或者入侵合法包的维护者账号直接在正规包里植入后门(如2022年ua-parser-js事件)。

危险在于信任链:你信任npm registry,所以你信任从那里下载的包;你信任维护者,所以你信任他们发布的新版本。一旦信任链中的某个环节被攻击者利用,所有下游都受影响。

技术概念
生活场景
关键相似点
恶意包(Typosquatting)
假冒品牌食品(包装相似)
冒充知名名称欺骗用户
账号劫持注入后门
供应商被收购后改用劣质原料
利用已建立的信任投毒
依赖混淆攻击
同名商品,内部不同
利用包解析优先级欺骗
包签名验证
商品追溯码验证来源
验证包的真实来源
私有Registry隔离
只从官方授权供应商采购
控制依赖来源
版本锁定(lock文件)
固定批次采购,不随意换货
防止被替换为恶意版本

延伸思考

  • 类比医药假药
    :假冒伪劣药品通过正规药店销售,消费者无从分辨。制药监管的解法是:药品序列号追溯、GMP认证、定期抽检。软件包的解法是:包签名、SBOM、定期SCA扫描
  • 依赖混淆攻击的原理
    :企业内部有私有npm包(如@company/utils),攻击者在公开registry注册同名包但版本号更高——某些工具会优先从公开源下载更高版本的包,从而执行攻击者的代码
  • 思考边界
    :开源生态的"信任预设"是其繁荣的基础,也是其阿喀琉斯之踵。一个维护者一旦变质(被收买、被勒索、账号被盗),影响范围可能是全球数百万应用。这不是技术问题,是供应链的治理问题

综合思考:供应链安全的纵深防御

从代码到生产的完整信任链

软件供应链攻击之所以危险,是因为它攻击的是"信任"本身,而不是"代码"本身。建立完整的纵深防御需要在每个环节都设置检查点:

SLSA框架:供应链安全的分级标准

就像食品安全有不同等级认证(无公害->绿色->有机),SLSA(Supply Chain Levels for Software Artifacts)把供应链安全分为4个等级:

SLSA级别
要求
类比
Level 1
构建过程有文档记录
食品有生产日期
Level 2
使用版本控制+CI
有生产批次可追溯
Level 3
构建环境隔离、可审计
GMP认证生产线
Level 4
两人审核、防篡改日志
最高级有机认证

供应链安全的常见误区

供应链安全是近年快速发展的领域,实践中存在几个常见认知误区,用类比可以帮助澄清:

误区
现实
类比纠正
"我用的都是知名开源库,应该安全"
知名库同样有漏洞,且影响面更大
大品牌食材出问题,影响更多餐厅
"我们有安全团队审查代码"
人工审查无法覆盖所有传递依赖
餐厅检查自己的厨师,但没有检查食材供应商
"我们定期扫描漏洞"
漏洞发现后需要快速响应,SBOM加速定位
发现食材有问题,需要快速查清哪批次受影响
"签名验证太复杂,先跳过"
未签名的制品无法验证完整性
商品没有防伪标签,不知道是否被掉包
"SBOM只是合规要求"
SBOM是安全事件响应的关键工具
成分表是过敏急救的关键信息

快速响应:新CVE发布后该怎么做

当一个重大漏洞发布(如2021年Log4Shell),有SBOM和没有SBOM的企业响应速度差异巨大:

这就是SBOM从"合规要求"到"安全运营工具"的价值所在——食品成分表在召回事件时是救命工具,平时看起来只是标签。

供应链安全的类比全景回顾

四个类比共同构成了软件供应链安全的完整认知框架:

类比
对应技术概念
核心洞察
食材供应商
依赖库与传递依赖
上游出问题,所有下游受影响
食品成分表
SBOM软件物料清单
明确知道里面有什么,快速响应漏洞
防伪标签
代码签名与验证
确认来源可信,防止被替换
食品掺假
恶意包投毒与账号劫持
利用信任渠道投放恶意内容

开发团队的供应链安全基线

无论团队规模,以下是可操作的供应链安全最小实践:

供应链攻击的演化趋势

软件供应链攻击正在快速演化,了解趋势有助于提前布防:

攻击方式
典型案例
趋势
恶意包上传
event-stream(2018)
持续增长,每年发现数千个
维护者账号劫持
ua-parser-js(2021)
攻击者专门针对高下载量包的维护者
依赖混淆
Alex Birsan研究(2021)
企业私有包名被公开仿冒
CI/CD投毒
SolarWinds(2020)
攻击构建基础设施而非代码本身
镜像仓库投毒
Docker Hub恶意镜像
伪造流行镜像,混入官方仓库附近

这些攻击的共同特征是:攻击信任而非绕过防护。传统安全工具在防范这类攻击时效果有限,因为攻击者利用的是合法的信任关系。这也是为什么供应链安全需要从"检测"转向"建立可验证的信任链"。

触类旁通的核心洞察

四个生活类比共同揭示了软件供应链安全的本质:依赖就像食材,上游污染波及所有下游;SBOM就像成分表,让你在危机时快速定位受影响范围;签名验证就像防伪标签,确保你拿到的是原装而非仿冒;恶意包投毒就像食品掺假,利用正规渠道传递危险内容。理解了这四层,也就理解了为什么供应链安全不只是"扫描依赖"——它需要从开发到运行的每个环节建立可验证的信任。

供应链安全的最终目标是:即使攻击者成功投毒了某个环节,也能在后续环节被发现和阻断。这正是纵深防御在供应链场景的体现——签名验证发现了被篡改的包,SBOM加速了受影响系统的定位,运行时监控捕获了异常行为。每一层都是独立的检测机会,而不是唯一的防线。正如食品安全不能只靠"信任供应商",软件安全也不能只靠"信任开源社区"——信任是起点,验证是保障。


框架映射

标准/框架
覆盖内容
SAMM
Implementation > Secure Build > Software Dependencies
ISO 27001
A.14.2.1 (安全开发), A.14.2.4 (外包软件开发)
ISO 27002:2022
8.8 (技术漏洞管理), 8.25 (安全开发)
NIST CSF
PR.DS-6 (完整性检查), PR.DS-7 (开发环境安全)
SLSA
Supply Chain Levels for Software Artifacts (Google)
SSDF
NIST Secure Software Development Framework

总结

软件供应链安全是密码安全的基础防线。代码在到达运行环境之前,需要经过开发、构建、部署等多个环节,每个环节都可能引入安全风险。

关键要点

  1. 依赖管理
    :使用SCA工具持续监控漏洞,锁定版本防止意外更新
  2. CI/CD安全
    :最小权限原则,使用OIDC代替长期凭证,流水线隔离
  3. SBOM必备
    :软件物料清单是应急响应和合规的基础
  4. 代码签名
    :使用Sigstore/Cosign等现代工具确保构建产出物完整性
  5. 开发环境
    :IDE插件审查、Git钩子检测、开发容器隔离

纵深防御策略

  • 预防
    :依赖锁定、私有仓库代理、分支保护
  • 检测
    :SCA扫描、密钥泄露检测、SBOM审计
  • 响应
    :漏洞通知、自动更新、快速修复

供应链安全口诀

依赖非儿戏,锁定要仔细 CI/CD需隔离,密钥别硬编码 SBOM是底线,签名保平安 开发环境净,代码自然安

软件供应链安全的核心是可验证的信任链:不是盲目信任每个依赖,而是在每个环节建立验证机制——SBOM记录了用了什么,签名验证了来源是谁,SCA扫描了有没有已知漏洞,私有Registry控制了只使用审核过的包。信任需要被验证,防护需要被持续维护,这是供应链安全的永恒主题。

密码经过软件供应链的安全检验后,最终到达服务器运行环境——头部企业可能采用物理机、VMware、Docker、Kubernetes 或 FaaS/BaaS 等不同形态,下一章将展开各运行时环境的安全边界与凭证保护要点。

喜欢的朋友关注收藏点赞转发一下吧!

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-04-10 12:00:49 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/508968.html
  2. 运行时间 : 0.183698s [ 吞吐率:5.44req/s ] 内存消耗:5,162.00kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=9a6b4f0313d0818dea7611d5d6290cfa
  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.80 KB )
  145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000874s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001517s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000968s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.001088s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001445s ]
  6. SELECT * FROM `set` [ RunTime:0.000678s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001484s ]
  8. SELECT * FROM `article` WHERE `id` = 508968 LIMIT 1 [ RunTime:0.004296s ]
  9. UPDATE `article` SET `lasttime` = 1775793649 WHERE `id` = 508968 [ RunTime:0.009960s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000803s ]
  11. SELECT * FROM `article` WHERE `id` < 508968 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001233s ]
  12. SELECT * FROM `article` WHERE `id` > 508968 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.003069s ]
  13. SELECT * FROM `article` WHERE `id` < 508968 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.005262s ]
  14. SELECT * FROM `article` WHERE `id` < 508968 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.005427s ]
  15. SELECT * FROM `article` WHERE `id` < 508968 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.022617s ]
0.185473s