23 Commits

Author SHA1 Message Date
c4e47fe9fa
安全加固:升级依赖消除高危漏洞,修复构建兼容性问题
【主项目依赖升级】
- hexo 6.x → 8.1.2:移除 swig-templates、swig-extras、旧版 cheerio、
  hexo-fs/hexo-util 等大量漏洞依赖链,解决 critical/high 级别漏洞
- hexo-renderer-marked 5.x → 7.0.1:修复 dompurify XSS 漏洞(GHSA-hpcv)
- gulp 4.x → 5.0.1:修复 vinyl-fs、glob/glob-stream、chokidar、
  braces 等 high 级漏洞链
- hexo-generator-sitemap 2.2.0 → 3.0.1:同步升级

【替换高危依赖】
- gulp-htmlmin 替换为 gulp-html-minifier-terser@7.1.0:
  gulp-htmlmin 依赖的 html-minifier 存在 ReDoS 高危漏洞且无修复版本,
  改用其维护分支 html-minifier-terser,API 完全兼容
- optimist 替换为 minimist@1.2.8(devDependency):
  optimist 捆绑的 minimist@<=0.2.3 存在 prototype pollution critical 漏洞,
  直接使用修复版 minimist 替代

【移除无修复版本的高危包】
- 移除 hexo-generator-baidu-sitemap(无维护更新,内部捆绑 hexo@4.x
  导致一系列 critical 漏洞),在 scripts/generator.js 中实现等效的
  自定义 Baidu Sitemap 生成器替代,功能与原包完全一致

【npm overrides 修复传递依赖漏洞】
- 添加 overrides: { ejs: "^6.0.1" }:
  hexo-renderer-ejs@2.x 依赖 ejs@3.x,ejs@3.x 存在 SSTI critical 漏洞
  且引入 jake → filelist → minimatch → brace-expansion 漏洞链;
  ejs@6.x 已无 jake 依赖,critical 漏洞全部消除

【yilia 主题依赖升级】
- @babel/core 7.26.x → 7.29.7:修复 Arbitrary File Read 漏洞
- @babel/plugin-transform-runtime / @babel/preset-env 同步升级至 7.29.x
- postcss 8.5.3 → 8.5.25:修复 XSS 及路径遍历漏洞
- 移除 clean-webpack-plugin(依赖链含 brace-expansion 高危漏洞),
  改用 webpack 5 内置 output.clean 实现等效的增量清理功能
- 添加 overrides: { brace-expansion: "5.0.9" } 修复剩余传递依赖漏洞

【构建兼容性修复】
- scripts/generator.js 新增 jsfiddle tag 注册:
  hexo@8 移除了内置 {% jsfiddle %} tag 导致构建 FATAL,
  重新实现该 tag 保持原有 iframe 嵌入行为
- gulpfile.js generate 任务错误处理修正:
  原代码在 hexo FATAL 时调用 hexo.exit(err) 但不向 gulp 抛出异常,
  导致 series 继续执行后续任务(compressHtml 因 public/ 不存在而报错),
  修改为在 hexo 退出后重新 throw err 确保 gulp 正确感知失败

【修复结果】
- 主项目:56 个漏洞(8 低危、14 中危、25 高危、9 严重)→ 0 个漏洞
- yilia 主题:8 个漏洞 → 1 个低危
  (剩余 1 个为 vue@2.x ReDoS,仅影响构建时自身模板解析,
  修复需整体迁移到 Vue 3 重写主题,暂不处理)
2026-07-31 20:38:04 +08:00
7d827d5db8
升级 yilia 主题构建工具链
- 升级 babel 相关依赖至 ^7.26.0,配置按需引入 core-js polyfill
- 升级 webpack 5.70.0 → 5.97.1,webpack-cli 4.9.2 → 5.1.4
- 升级 css-loader、postcss-loader、less-loader 等至最新版本
- 移除废弃的 file-loader/url-loader,改用 webpack5 内置 asset modules
- 移除 babel-polyfill 和 leancloud-storage,添加 @babel/runtime 和 core-js
- 升级 vue 2.6.14 → 2.7.16,axios 1.13.6 → 1.8.4
- 添加 browserslist 配置

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 22:12:52 +08:00
c1cbb45b34
scss替换为less 2026-03-21 15:59:59 +08:00
30904edfa1 webpack 打包配置修改 2022-03-07 16:11:31 +08:00
913f9f6c62 主题webpack升级到5 2022-03-07 15:17:11 +08:00
结发受长生
3439b8d34b 博客全文检索施工记录 2019-07-09 13:09:17 +08:00
结发受长生
7a08585b17 cleanOnceBeforeBuildPatterns 2019-06-28 17:05:01 +08:00
结发受长生
402ab0d495 升级clean-webpack-plugin 2019-06-28 16:55:23 +08:00
结发受长生
ffc1454d04 打包调整兼容IE 2019-05-27 10:18:18 +08:00
结发受长生
ea0d83d9fa 工具栏弹出隐藏效果优化 2019-05-19 08:08:20 +08:00
结发受长生
a56e371bb0 修改webpack配置 2019-05-17 15:51:06 +08:00
结发受长生
d4bbfd5494 主题CSS优化 2019-05-06 09:43:49 +08:00
结发受长生
4117c3b7ff webpack分块打包优化性能 2019-05-05 22:56:10 +08:00
结发受长生
18f8ee7580 webpack4升级踩坑 2019-04-30 16:52:30 +08:00
结发受长生
e1c0029234 主题包升级webpack4 2019-04-30 12:24:31 +08:00
结发受长生
17c18eb256 打包方式调整 2019-04-28 15:05:11 +08:00
结发受长生
469c56f570 添加看板娘 2019-04-27 17:28:41 +08:00
结发受长生
9e44b10581 换用valine评论 2018-06-28 17:16:52 +08:00
结发受长生
0b0053c07e 搜索优化 2018-06-19 11:56:37 +08:00
结发受长生
79c6a7588e 样式优化 2018-06-11 15:04:40 +08:00
结发受长生
131e7fbbd7 打包调整 2018-06-09 20:46:20 +08:00
结发受长生
f1870b2ff8 国际化 2018-06-08 16:11:04 +08:00
结发受长生
c77caf259f 新主题 2018-06-06 17:33:48 +08:00