安全防护
开启 CSP:upgrade-insecure-requests
开启 CSP:upgrade-insecure-requests,确保所有资源通过加密连接加载,减少中间人攻击风险。 也可避免 HTTPS 协议网页引用 HTTP 资源时报错。
相关文档:CSP: upgrade-insecure-requests - HTTP | MDN
开启仅允许使用指定域名访问
有许多博主的站点被恶意镜像站克隆。恶意克隆站替换页面中原本的站点链接,分走站点流量,影响站点 SEO。
因此我开发了仅允许使用指定域名访问这个功能以应对这个问题。
URL 转 Base64
将你的站点完整链接输入上方输入框,即可生成 Base64 编码结果。
开启仅允许使用指定域名访问后,在“域名白名单列表”和“Base64 编码后的目标链接”输入 Base64 编码后的结果,即可防御恶意克隆。
为外部资源添加 SRI 验证
Subresource Integrity (SRI) 可确保从第三方 CDN 加载的静态资源未被篡改,避免基于公共 CDN 的 NPM 供应链投毒攻击。通过在 script 或 link 标签上添加 integrity 属性并配合 crossorigin 使用,可以在浏览器端验证文件哈希。
本主题的 JavaScript 和 CSS 资源均已添加 SRI 验证信息。
添加 SRI 示例:
<!-- JavaScript -->
<script src="https://example.com/lib.min.js" integrity="sha384-BASE64_HASH_HERE" crossorigin></script>
<!-- CSS -->
<link rel="stylesheet" href="https://example.com/style.min.css" integrity="sha384-BASE64_HASH_HERE" crossorigin />可使用在线工具(例如 srihash.org)生成 SRI 信息。
验证主题包完整性
每次正式版与每日预发布发布时,CI 流程都会为所有 .zip 产物生成 GitHub Artifact Attestation,可用于验证下载文件确实来自本仓库的 GitHub Actions 构建,未经中间人篡改。
当前发布流程采用 GitHub 推荐的 reusable workflow 模式,在复用构建工作流内部完成构建、上传产物与 attestation 签发,对应 GitHub 文档中的 SLSA v1 Build Level 3 路线。
验证方式:GitHub Attestation
需要安装 GitHub CLI。
如需按 GitHub 推荐的 SLSA v1 Build Level 3 路线进行更严格的校验,可额外指定签名所使用的复用工作流 reusable-build-theme.yml:
gh attestation verify howiehz-higan-cn.zip \
--repo HowieHz/halo-theme-higan-hz \
--signer-workflow HowieHz/halo-theme-higan-hz/.github/workflows/reusable-build-theme.ymlgh attestation verify howiehz-higan-cn.zip `
--repo HowieHz/halo-theme-higan-hz `
--signer-workflow HowieHz/halo-theme-higan-hz/.github/workflows/reusable-build-theme.ymlgh attestation verify howiehz-higan-cn.zip ^
--repo HowieHz/halo-theme-higan-hz ^
--signer-workflow HowieHz/halo-theme-higan-hz/.github/workflows/reusable-build-theme.yml验证通过则说明文件完整且来源可信;如果同时指定了 --signer-workflow,也说明该产物确实由指定的复用构建工作流签名。