当前位置:首页>安卓APP>旧版安卓应用告急!现代加密实践保驾护航

旧版安卓应用告急!现代加密实践保驾护航

  • 2026-02-04 15:12:59
旧版安卓应用告急!现代加密实践保驾护航

移动开发需更新安全实践。淘汰MD5、SHA-1、DES、AES/ECB等旧算法,改用SHA-256、Argon2、AES/GCM、Android密钥库、ECC等现代加密,提升应用安全性。

译自:Securing Legacy Android Apps: Modern Encryption Practices[1]

作者:Stephen Henry

随着软件工程师从初级职位晋升到移动开发[2]领域的管理岗位,良好的代码实践[3]变得越来越重要,不再是事后才考虑的事情。衡量资深能力的标准之一是适应现代安全实践的能力。

值得注意的是,随着移动生态系统快速发展,针对用户数据的攻击也以同样的速度演变。因此,工程师有责任对遗留实现进行现代化改造,即使它们看起来仍然有效。这是因为它们会将用户暴露在安全威胁之下,并使应用程序容易受到攻击。

一些通常隐藏在旧代码下的安全债务包括但不限于:

  • • 使用MD5[4]SHA-1[5]进行密码哈希或验证数据完整性。
  • • 依赖DES[6]AES/ECB[7]进行加密(两者都容易产生可预测模式)。
  • • 硬编码的API密钥或对称密钥存储在SharedPreferences中,而不是Android密钥库系统。
  • • 过时的认证流程,例如基本认证(Basic Auth)或自定义令牌处理。
  • • 使用已废弃且被ESAPI禁止的API[8],例如android.webkit.WebView.setJavaScriptEnabled(true)Math.Random.*
  • • 不符合最新的OWASP十大安全漏洞列表。

AppSec工具(如Checkmarx)对移动应用程序进行的典型安全扫描,通常会揭示上述实践,这些实践曾一度常见,但现在被认为是危险的。

让我们探讨常见的遗留加密算法及其现代替代品。

弱哈希算法(MD5和SHA-1)的危险

MD5和SHA-1是已知的密码哈希函数,因其漏洞(包括易受碰撞攻击)而臭名昭著。密码哈希函数接受任何输入(可以是消息、文件或密码),生成该数据的简短而独特的指纹。当两个不同的输入产生相同的哈希值时,就会发生碰撞攻击,攻击者可以通过逆向工程或哈希操纵,导致身份欺骗、篡改签名数据和其他安全漏洞[9]

这些算法已被公开破解多年。对于MD5,在消费级硬件上可在毫秒内生成碰撞。一个关键的漏洞是:SHA-1在谷歌于2017年发起的SHAttered攻击[10]后被官方弃用。随着时间的推移,密码分析表明SHA-1在敏感应用中已不再足够安全。

此外,持续使用这些算法进行密码存储、签名生成或完整性检查可能导致不符合监管机构的要求,例如欧盟数据隐私法GDPR、全球支付卡行业安全标准PCI-DSS等。

数据完整性和密码哈希的替代方案

因此,为了保护您的遗留应用程序,请考虑用以下算法替换上述脆弱算法:

对于数据完整性,与其使用MD5校验和,不如考虑更安全的密码哈希函数,例如SHA-256[11]SHA-3[12]。它们对碰撞攻击和原像攻击提供更强的抵抗力。使用SHA-256或SHA-3还能通过确保相同输入总是产生相同哈希值来保证确定性,同时确保即使微小的输入变化也会导致输出的显著变化。这种雪崩效应有助于检测最微小的单比特篡改或损坏。

谈到密码存储和哈希,请考虑一种不仅提供数据完整性而且确保机密性的算法。这正是MD5和SHA-1失败的地方。这些密码哈希函数是为完整性和速度而设计的,但绝不是为了安全的密码存储。此外,这些哈希值总是通过加盐存储,使其容易受到彩虹表攻击。

为了克服这个问题,请考虑使用以安全为重点的算法,例如bcrypt[13]Argon2[14]PBKDF2[15]。这些不仅是哈希算法,更是密钥派生函数(KDF),旨在抵抗暴力破解和GPU攻击。

基于密码的密钥派生函数2 (PBKDF2) 是最广泛使用的KDF之一,并得到了美国国家标准与技术研究院 (NIST) 的批准。PBKDF2通过向预哈希密码添加盐值来增强哈希密码的安全性,确保相同的密码产生不同的哈希值。这种方法挫败了彩虹表攻击。PBKDF2还应用了哈希过程的多次迭代,称为拉伸。拉伸意味着将哈希函数多次(数千甚至数百万次)应用于密码和盐值的组合。这种方法减慢了哈希计算,从而降低了暴力破解攻击的可行性。

PBKDF2可生成的盐值数量有限,因此工程师有责任单独生成和存储盐值。正是这一限制使bcrypt成为许多人的首选。由于其内置和自动盐值处理,bcrypt被认为更安全,因为它能够抵抗GPU破解。

它较旧、CPU密集型且更易于实现。这使得它成为要求不高的应用或遗留应用的合理选择,但它并不是现有最锐利的工具。为此,Argon2是双刃的“本庄正宗”之剑。

Argon2是一种现代、安全的KDF,旨在通过内存硬性来保护密码,这意味着它需要更多的内存资源。这使得使用快速硬件(如GPU)的暴力破解攻击效率大大降低且成本更高。它还具有高度可配置性,可以对内存使用、迭代次数和并行度等安全参数进行微调,使其能够抵抗不断演进的破解技术。

值得一提的是,KDF应该在后端服务器上实现以进行密码存储,因为客户端(Android)上的哈希处理在服务器被攻陷时是不安全的。

DES和AES/ECB加密的漏洞

除上述之外,如果您的应用程序使用对称加密作为替代方案,请将AES/ECB或DES替换为AES/GCM[16]。对称加密是现代密码学的两大基石之一,与公钥(非对称)加密并驾齐驱。在对称加密中,加密和解密使用相同的密钥。它也在现代移动开发中广泛使用,从文件加密和令牌存储到安全偏好设置。

高级加密标准(AES)取代了已废弃的数据加密标准(DES),后者是20世纪70年代的56位对称密码。DES的密钥空间非常小,很容易被暴力破解。

AES/ECB(电子密码本)存在固有的模式暴露弱点。根据设计,AES/ECB将明文分成固定大小的块,并使用相同的密钥独立加密每个块。尽管它很简单,但它被认为是不安全的,因为相同的明文块会产生相同的密文块,从而泄露模式。

现代对称和非对称加密替代方案

现代且安全的替代方案包括:

AES/CBC[17](密码块链),其中每个明文块在加密前与前一个密文块进行异或运算[18],从而产生链式效应。第一个块还必须有一个唯一的初始化向量(IV)。

AES-GCM[19](伽罗瓦/计数器模式)是当今Android和大多数安全系统上现代、以完整性为中心且推荐的对称加密模式。它通过递增计数器并将结果与明文进行异或运算来工作。GCM是一种带有关联数据的认证加密(AEAD)[20]模式,这意味着它可以在一个高效的步骤中同时提供机密性和完整性。

至关重要的是,要确保对称密钥没有硬编码或存储在不安全的位置(如SharedPreferences)。相反,应使用Android密钥库系统,它以隔离且不可导出的方式存储密钥,并使用带有正确转换字符串(如AES/GCM/NoPadding)的Cipher类。

另一方面,非对称加密(公钥加密)对于移动应用程序上的大量数据[21]来说太慢。它主要用于以混合方式补充对称加密,以安全地交换AES对称密钥,并支持数字签名以进行认证和数据完整性。RSA(Rivest-Shamir-Adleman)[22]依赖于大素数分解的难度。它使用公钥进行加密,私钥进行解密。

对于公钥加密,考虑使用RSA/OAEP(最优非对称加密填充[23])或ECC(椭圆曲线密码学)[24],而不是RSA/ECB/PKCS1,因为后者缺乏现代密码学保证。RSA/ECB/PKCS1中使用的填充方案(PKCS1)是漏洞的主要原因,因为它已过时,缺乏现代安全证明,并且容易受到选择密文攻击。OAEP填充通过添加随机性和使用哈希函数消除了这些漏洞。

出于签名或证书目的,考虑转向更强的算法,例如带有SHA-256的RSA或ECDSA(椭圆曲线数字签名算法)[25]。在Android安全和其他资源受限的环境中,ECDSA备受青睐,因为它可以生成更小、处理速度更快的密钥,这对于TLS/SSL通信非常重要。

此外,为了保护证书并在应用程序与服务器之间通过TLS/SSL通信时建立信任,请考虑证书固定(certificate pinning)。它通过确保应用程序只信任特定的预设证书或公钥来增加一层安全,这是对抗中间人(MITM)攻击的关键防御措施。

结论

迁移到现代密码学应该是一个金丝雀发布过程,涉及对遗留算法使用情况的清晰审计、风险分类、兼容性迁移,最后是密集的测试和验证。所有这些过程还应包括对项目蓝图的清晰文档,以供未来开发。

引用链接

[1] Securing Legacy Android Apps: Modern Encryption Practices:https://thenewstack.io/securing-legacy-android-apps-modern-encryption-practices/[2]移动开发:https://thenewstack.io/intertwined-worlds-platform-and-mobile-app-engineering/[3]良好的代码实践:https://thenewstack.io/why-quality-code-matters-and-how-to-achieve-it/[4]MD5:https://www.okta.com/identity-101/md5/#:~:text=The%20message%2Ddigest%20algorithm%20MD5,matched%20with%20a%20public%20key.[5]SHA-1:https://www.nist.gov/news-events/news/2022/12/nist-retires-sha-1-cryptographic-algorithm[6]DES:https://www.geeksforgeeks.org/computer-networks/data-encryption-standard-des-set-1/[7]AES/ECB:https://www.npmjs.com/package/aes-ecb[8]ESAPI禁止的API:https://www.appmarq.com/public/tqi,1039044,Avoid-usage-of-BannedAPI-when-using-ESAPI-library[9]篡改签名数据和其他安全漏洞:https://thenewstack.io/how-iam-missteps-cause-data-breaches/[10]谷歌于2017年发起的SHAttered攻击:https://thehackernews.com/2017/02/sha1-collision-attack.html#:~:text=The%20Google%2Dled%20attack%20on%20SHA1%2C%20dubbed%20SHAttered%2C,attackers%20to%20break%20communications%20encoded%20with%20SHA1.[11]SHA-256:https://www.movable-type.co.uk/scripts/sha256.html[12]SHA-3:https://csrc.nist.gov/projects/hash-functions/sha-3-project[13]bcrypt:https://auth0.com/blog/hashing-in-action-understanding-bcrypt/[14]Argon2:https://argon2.online/[15]PBKDF2:https://hexdocs.pm/pbkdf2_elixir/Pbkdf2.html[16]AES/GCM:https://medium.com/@pravallikayakkala123/understanding-aes-encryption-and-aes-gcm-mode-an-in-depth-exploration-using-java-e03be85a3faa[17]AES/CBC:https://www.cincopa.com/learn/what-is-cipher-block-chaining-cbc-mode-in-aes#:~:text=Mode%20in%20AES?-,Cipher%20Block%20Chaining%20(CBC)%20is%20a%20block%20cipher%20mode%20of,if%20plaintext%20contains%20repetitive%20patterns.[18]异或运算:https://www.youtube.com/watch?v=h7Cgx-pn9bw[19]AES-GCM:https://datatracker.ietf.org/doc/html/rfc5288#:~:text=Abstract%20This%20memo%20describes%20the,Hellman%2Dbased%20key%20exchange%20mechanisms.[20]带有关联数据的认证加密(AEAD):https://developers.google.com/tink/aead[21]移动应用程序上的大量数据:https://thenewstack.io/how-time-plays-a-crucial-role-in-aggregating-mobile-data/[22]RSA(Rivest-Shamir-Adleman):https://www.geeksforgeeks.org/computer-networks/rsa-algorithm-cryptography/[23]RSA/OAEP(最优非对称加密填充:https://www.cs.rit.edu/~spr/COURSES/CRYPTO/oaep.pdf[24]ECC(椭圆曲线密码学):https://blog.cloudflare.com/a-relatively-easy-to-understand-primer-on-elliptic-curve-cryptography/[25]ECDSA(椭圆曲线数字签名算法):https://www.cs.miami.edu/home/burt/learning/Csc609.142/ecdsa-cert.pdf

最新文章

随机文章

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