当前位置:首页>小程序源码>啥,微信小程序暴露面收敛还要改造代码?OUT了

啥,微信小程序暴露面收敛还要改造代码?OUT了

  • 2026-06-25 23:52:33
啥,微信小程序暴露面收敛还要改造代码?OUT了

很多人会有一个直觉:小程序跑在微信里,是不是就比普通网站更安全?

答案是:不一定。

小程序的页面确实运行在微信生态中,但它背后的登录、用户信息、订单、上传下载、业务查询等接口,很多时候仍然是一个个公网 API 接口。只要这些 API 能被公网直接访问,就可能被扫描器发现,被脚本反复探测,甚至被拿来做撞库、弱口令、漏洞探测和敏感路径扫描。

用户看见的是小程序页面,攻击者盯上的往往是背后的 API。

这篇文章,我们用一个真实验证过的测试小程序「虎符应用」为例,重点讲清楚三件事:小程序为什么会暴露;WEB 隐身盾是怎么零改造把暴露面收起来的;这件事我们实际是怎么一步步落地的。

一、小程序“能打开”,不代表 API 接口“该裸露”

从用户视角看,小程序的访问流程很简单:打开小程序、登录、进入首页、使用业务功能。
但从技术视角看,这背后其实发生了很多 API 请求:获取系统配置、获取验证码、提交账号密码、判断登录状态、获取当前用户信息、拉取业务数据、上传或下载文件。
这些接口如果全部直接暴露在公网,就像一家门店虽然前台有人接待,但后门、仓库门、员工通道也都开在马路边。正常用户走前台没问题,但攻击者并不一定从前台进,他可能直接去试后门。
• 未登录也能直接访问部分业务接口;
• 登录接口被脚本持续撞库;
• 攻击者通过接口路径识别后端框架和业务结构;
• .env、备份文件、目录遍历等敏感路径被探测;
• SQL 注入、命令注入等攻击特征直接打到源站;
• 后端应用和 WAF 被动承压,安全日志分散,不易运营。
让该访问的人正常访问,让未认证的访问进不来,让危险请求在到达源站之前就被挡住。

二、要达到什么效果?

做暴露面收敛,不是为了增加用户操作,也不是让业务多一套登录。我们的目标很明确:
• 登录页、验证码、注册、找回密码等入口仍然正常可用;
• 用户按原来的方式登录,不需要感知 WEB 隐身盾;
• 对登录口进行加固:暴力破解,行为异常等;
• 登录成功后,业务接口正常访问;
• 没有登录态的直接 API 访问,会在网关侧被拦截;
• SQL 注入、敏感文件、目录遍历等探测请求,在到达后端前被拒绝;
• 安全事件在 WEB 隐身盾侧形成统一告警和审计。
收敛的是后端 API 接口暴露面,并对登录口进行安全加固
接入前后对比
• 正常用户打开小程序:接入前直接访问后端 API;接入后经 WEB 隐身盾转发,体验基本不变。
• 未登录访问业务接口:接入前可能打到后端;接入后网关判断未认证,直接拦截。
• 攻击者直接 curl API:接入前请求进入源站;接入后网关返回未授权。
• 扫描器探测敏感路径:接入前后端被动承压;接入后网关拒绝并记录告警。
• 安全运营:接入前日志分散在各系统;接入后统一在 WEB 隐身盾侧可见。

三、第一步:先用 Charles 把小程序接口看清楚

暴露面收敛不能靠猜。小程序里哪些接口登录前必须放行?登录成功到底看哪个字段?Cookie 叫什么?用户身份从哪里取?这些问题都要从真实请求里找到答案。
这次我们使用 Charles 对「虎符应用」测试小程序进行抓包分析。操作过程并不复杂:
• 手机和电脑连接到同一网络;
• 手机代理指向 Charles;
• Charles 只开启测试域名的 SSL Proxying;
• 清空历史请求;
• 从打开小程序开始,逐步操作登录页、验证码、注册、找回密码、错误登录、正确登录、进入个人中心等流程。
图 1:手机打开测试小程序「虎符应用」,先停在登录页观察初始化请求
这个阶段最重要的不是“抓到很多包”,而是要把接口分清楚:哪些是登录前必须访问的,哪个是登录接口,登录成功和失败返回有什么区别,登录成功后有没有 Cookie,哪个接口能返回当前用户信息,哪些业务接口必须登录后才能访问。
这个过程很像“画地图”。只有把地图画清楚,后面 WEB 隐身盾插件才能准确判断:哪些请求该放,哪些请求该拦。

四、登录前接口要放行,否则用户还没登录就被拦住了

很多项目接入安全网关时,第一类问题就是:安全能力一开,登录页打不开了。原因通常很简单:登录前需要访问的接口没有被白名单放行。
比如验证码、时间戳、系统配置、登录预校验、注册、找回密码等接口,本来就是用户还没登录时必须访问的。
这里有一个很实用的经验:登录前白名单不是研发拍脑袋列出来的而是要在小程序里实际点一遍,把 Charles 里出现的必要接口逐项确认。否则上线后很容易出现“小程序首页能打开,但验证码不显示”“登录按钮点了没反应”“找回密码失败”等问题。

五、故意输错一次密码,是非常关键的一步

很多人抓包时只抓登录成功,这是一个常见误区。因为 WEB 隐身盾插件需要知道什么叫“登录成功”,也要知道什么叫“登录失败”。
有些应用即使账号密码错误,HTTP 状态码也可能仍然是 200,只是在响应体里返回业务 code。如果只看 HTTP 状态码,很容易误判。我们这次专门先用错误密码登录了一次。
登录失败响应示例
{
  "code": 401,
  "message": "账号或密码错误",
  "success": false
}
登录成功响应示例
{
  "code": 200,
  "message": "成功",
  "success": true
}
因此,插件里的判断逻辑应该是:code = 200,且 success = true,同时能获取到有效会话 Cookie。满足这些条件,才认为登录成功。

六、找到 Cookie 和“我是谁”接口,打通原有登录态

WEB 隐身盾要做到用户无感,关键在于:复用业务原有登录态,而不是让用户重新登录一遍。
这次测试中,我们在登录成功响应里发现了业务 Cookie:AUTH_PORTAL_SESSION。这个 Cookie 可以作为 WEB 隐身盾识别同一登录会话的关键值,也就是网关侧的会话标识。
图 2:Charles 中记录登录成功接口,保存成功响应和 Cookie 信息
但是,仅有 Cookie 还不够。安全运营里还需要知道:这个请求是谁发起的,用户 ID 是多少,日志里展示哪个用户名。
于是我们继续在小程序里进入用户信息相关页面,通过 Charles 找到了当前用户信息接口:GET /api/me。这个接口能返回当前登录用户的基本信息,例如用户 ID、昵称、邮箱等。
图 3:通过 /api/me 获取当前登录用户信息,字段映射在这里确定
在实际插件需求中,我们把字段映射定义为:用户唯一标识取 data.id,用户展示名取 data.nickname,如果昵称为空,可备用使用邮箱或手机号字段。
这样,WEB 隐身盾就能把原有业务登录态和网关侧身份体系关联起来。用户仍然按原来的方式登录,业务代码也不需要修改,但网关已经知道:这个请求来自哪个已认证用户。

七、把抓包结果整理成插件需求文档

抓包只是第一步,真正能落地的关键,是把抓包结果整理成一份清楚的《插件需求文档》。这份文档不需要很复杂,但一定要准确。以“虎符应用”小程序为例,建议至少包含下面几类信息:
• 应用名称:虎符应用
• API 域名:https://xxx.yyy.zzz
• 登录接口:https://xxx.yyy.zzz/api/login
• 登录成功判断:响应 code=200 且 success=true;同时获取 Cookie AUTH_PORTAL_SESSION
• 登录失败判断:响应 code=401 且 success=false,message=账号或密码错误
• 用户信息接口:GET https://xxx.yyy.zzz/api/me
• 用户唯一标识:data.id,作为登录名/用户 ID
• 用户姓名:data.nickname,作为日志展示姓名
• wisid 来源:Cookie AUTH_PORTAL_SESSION
• 未认证返回:{"code":401,"message":"未授权访问","success":false}
也可以直接把下面这一段作为交给 Cursor 或其他 AI 编程助手的需求输入。
《插件需求文档:虎符应用》
1. 基本信息
• API 域名:https://xxx.yyy.zzz
• 登录方式:账号密码登录
• 会话凭据:Cookie AUTH_PORTAL_SESSION
• wisid:取 Cookie AUTH_PORTAL_SESSION 的值
2. 需要未登录加白的接口
• /api/public/login-captcha-precheck
• /api/timestamp
• /api/login
• /api/captcha
• /api/public/system-info
• /api/vcode/send
• /api/register
• /api/forgot-password/verify-code
• /api/forgot-password/reset
• /api/session
• 如 Charles 中存在非 /api 开头的前端文件请求,也需要按路径或后缀加白。
3. 登录接口
• URL:https://xxx.yyy.zzz/api/login
• Method:以 Charles 实际抓包为准,通常为 POST
• 登录成功响应示例:{"code":200,"message":"成功","success":true}
• 登录失败响应示例:{"code":401,"message":"账号或密码错误","success":false}
• 成功条件:响应 code=200 且 success=true,并能拿到 Cookie AUTH_PORTAL_SESSION。
4. 用户信息接口
• URL:https://xxx.yyy.zzz/api/me
• 使用 Cookie AUTH_PORTAL_SESSION 请求。
• 成功条件:响应 code=200 且 success=true。
• 登录名字段:data.id
• 用户姓名字段:data.nickname
5. 未认证返回结构
{"code":401,"message":"未授权访问","success":false}
这样做有两个好处:第一,实施人员和研发人员看得懂;第二,AI 编程助手或插件开发人员可以直接基于这份文档生成 WEB 隐身盾应用插件。

八、用 WEB 隐身盾插件实现零改造接入

有了清晰的插件需求文档后,就可以让 AI 编程助手开始干活了。先克隆 WEB 隐身盾插件文档和示例仓库:
然后打开 Cursor,把 shield-plugins 仓库作为参考上下文,再把上面的《插件需求文档》贴给它。
我的提示词建议这样写:
请参考当前 shield-plugins 仓库里的插件示例和文档,帮我编写「虎符应用」WEB 隐身盾插件。
要求:
1. 按《插件需求文档》配置登录前白名单。
2. 登录接口要 Hook 成功/失败响应,不能只按 HTTP 200 判断。
3. 登录成功后读取 Cookie AUTH_PORTAL_SESSION,并作为 wisid。
4. 通过 /api/me 获取用户信息,data.id 作为登录名,data.nickname 作为用户姓名。
5. 未认证访问返回 {"code":401,"message":"未授权访问","success":false}。
6. 参考仓库既有插件结构输出完整插件文件,并说明需要人工复核的点。
图 4:Cursor 参考 shield-plugins 仓库和《插件需求文档》生成虎符应用插件
小技巧:不要只让 AI 一次性输出最终文件。可以先让它复述接口识别结果和字段映射,确认无误后再生成插件;调试失败时,把 Charles 请求、响应和 WEB 隐身盾日志继续喂给 AI 迭代。
整个过程不要求小程序重新开发登录流程,也不要求后端重写认证逻辑。这也是 WEB 隐身盾比较适合存量系统的原因:不改变业务原有登录方式,而是在网关层完成身份识别和暴露面管控。

九、导入插件并绑定应用后,重点看四类验收结果

插件生成后,不能直接认为“上线完成”,我们会先导入 WEB 隐身盾控制台,再绑定到对应应用。
图 5:在 WEB 隐身盾控制台上传刚刚生成的插件
上传完成后,进入对应应用的编辑页面,选择刚刚编写的「虎符应用」插件并保存。
图 6:编辑应用,选择并启用虎符应用插件
然后做一轮完整验收。验收不是只看“能不能登录”,而是要同时看正常链路和异常链路。
• 正常打开小程序:验证登录页、页面资源、验证码、注册/找回密码入口正常;异常时优先排查登录前白名单是否漏接口。
• 错误密码提示正常:验证失败登录不能建立认证会话;异常时优先排查是否只按 HTTP 200 判断成功。
• 正确账号可登录:验证业务接口正常访问,网关可关联用户身份;异常时优先排查 Cookie、/api/me、字段映射是否正确。
• 裸连业务接口被拦:验证不带 Cookie 访问 /api/me 返回未授权且不到源站;异常时优先排查应用是否绑定插件,流量是否经过网关。
例如,在授权测试环境中直接访问用户信息接口:
curl -i https://xxx.yyy.zzz/api/me
预期返回:
{
  "code": 401,
  "message": "未授权访问",
  "success": false
}

十、安全验证:危险请求应在网关侧被拒绝

除了认证链路,我们还会做受控安全验证。比如模拟一些常见的异常访问特征:SQL 注入探测、敏感文件 .env、目录遍历、异常路径扫描、非法请求方法、高频异常访问。比如测试 /../../ 这类目录遍历特征时,页面应被拦截:
图 7:异常路径或攻击特征被 WEB 隐身盾拦截,并产生告警日志
预期结果是:WEB 隐身盾直接拒绝请求,后端源站不接收该请求,控制台产生对应告警日志,安全人员可以看到请求来源、命中规则、目标路径等信息。
这意味着 WEB 隐身盾不仅是在做“登录态判断”,还在帮助业务把常见攻击流量挡在源站之前。对于安全运营来说,这一点很重要。

十二、小程序暴露面收敛,真正改变了什么?

接入前,攻击者可能直接面对的是后端 API。接入后,攻击者首先面对的是 WEB 隐身盾。
这中间的变化很关键:未登录业务访问被拦在网关,危险请求不再直接打到源站,用户身份在网关侧可识别,安全事件有统一日志,业务不用重写认证体系,用户使用体验基本不变。
对于研发团队来说,改造成本低;对于安全团队来说,暴露面变小了;对于业务方来说,用户体验没有被破坏;对于运维团队来说,源站压力和异常流量减少了。这就是小程序 API 暴露面收敛的价值。

安全不是把门都关上,而是把入口管起来

小程序安全不是一句“小程序在微信里所以安全”就能解决的。真正需要关注的是:后端 API 是否公网裸露?未认证请求是否能打到业务?攻击探测是否会进入源站?安全团队是否能看见、拦住、追溯这些访问?
通过复盘这次「虎符应用」的实践说明,小程序暴露面收敛并不是一个停留在方案里的概念,而是一套可以真实落地的流程。
最终达到的效果是:用户无感,业务少改,安全可见,源站收敛
对于已经上线的小程序、存量 Web 系统、第三方应用门户来说,这种方式尤其适合:不用大规模重构业务代码,也能在网关层把 API 暴露面真正管起来。
如果您的企业也遇到了类似的小程序暴露面的问题,欢迎扫描下面二维码联系我们一起探讨最佳收敛方案。

END

传统零信任之困:一个万人企业的OA(PC/WEB/APP)暴露面收敛实践

2026年,企业办公系统防黑专家来啦

企业最大的安全隐患,可能不是黑客,而是“觉得没事”

最新文章

随机文章

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