codeigniter 4.7.4 是纯安全修复版本,含4项cve补丁,重点修正反向代理下incomingrequest::issecure()协议判断漏洞;升级需校验$proxyips配置,否则https判断失效。

CodeIgniter 的版本变更不是简单数字递增,而是架构演进与安全策略的集中体现。尤其从 CI3 过渡到 CI4 后,项目结构、加载机制、扩展方式和安全模型都发生了实质性变化。追踪版本更新,关键不在记住每个小版本号,而在于识别“哪些改动会影响你当前项目的运行逻辑”。
CI4 主线版本的关键分水岭
CI4 自 2023 年正式进入稳定期后,已形成清晰的迭代节奏:每年 2–3 次功能发布 + 不定期安全补丁。近期几个主线版本具有明确定位:
- 4.3.x(2023年):首次内置 CSRF 防护开关、增强路由缓存机制,是 CI4 生产可用的起点版本;
- 4.6.0(2025年):重构异常处理链路,统一错误捕获入口,大幅降低自定义异常类的适配成本;
-
4.7.4(2026年7月7日):纯安全修复版本,含 4 项已公开 CVE 补丁,重点修正
IncomingRequest::isSecure()在反向代理场景下的协议判断漏洞——这是当前所有 4.7.x 项目必须升级的核心动因。
如何快速定位你项目的更新风险点
不必逐行读完全部更新日志。只需三步锁定影响面:
- 打开你项目中的
composer.json,查看"codeigniter4/framework"的当前约束(如"^4.7.0"); - 访问 GitHub Releases 页面,筛选对应主版本(如 v4.7.x)的最新 tag;
- 重点扫读 “Security Fixes” 和带 ⚠️ 标识的 Breaking Changes —— 比如 4.7.4 中对
$proxyIPs配置的强制校验,若你用 Nginx 或 Cloudflare 作反向代理却未配置可信 IP 列表,升级后 HTTPS 判断将失效。
二次开发项目更新时的兼容性检查清单
如果你在 app/ 外修改过 system/ 文件,或依赖了已废弃机制(如 CI3 风格 hooks),升级前必须人工核对:
- 确认所有自定义逻辑是否迁移到
app/目录下(模型、服务、中间件、过滤器); - 检查是否还在使用
application/config/hooks.php—— CI4 已完全移除该机制,需改用 Filters 或 Middleware; - 验证会话存储路径(
$config['sess_save_path'])是否为绝对路径,且指向writable/sessions/; - 运行
php spark test(如有单元测试)或至少手动触发登录、表单提交、文件上传等核心流程,观察日志中是否有Deprecated提示。
日常版本追踪建议
把版本维护变成自动化习惯,比每次升级临时抱佛脚更可靠:
- 订阅 官方论坛 Announcements 板块,安全更新通常提前 24–48 小时预告;
- 在 CI4 项目中启用
spark upgrade命令(需安装codeigniter4/upgrade-tool),它能自动检测兼容性缺口并生成迁移建议; - 将
composer outdated codeigniter4/*加入 CI 流水线,让版本滞后成为构建失败项之一。











