Files
cloud-chip.cn/docs/SECURITY_SEO_REMEDIATION.md
T
Lucanlee 76fd36c0a4 上线实测扫描:发现生产部署陈旧,63431dd 修复未生效
- 对 https://cloud-chip.cn 做 curl 实测(速度+SEO/GEO)
- 关键发现:线上 JSON-LD 仍为旧 Organization、无 hreflang、产品页双品牌、security.txt/llms.txt 404 → 63431dd 审计修复未上线
- 速度:TTFB 0.12-0.17s(好),但 no-store 无缓存 + 外部 cdn.tailwindcss.com 拖累
- SEO/GEO 评级:当前 C-,正确部署后可达 B
- 在 docs/SECURITY_SEO_REMEDIATION.md 新增「上线实测扫描」章节含服务器修复命令
- CHANGELOG 新增 [1.0.1] 版本记录
2026-08-08 23:51:35 +08:00

13 KiB
Raw Blame History

安全 / SEO / GEO 修复跟踪(SECURITY_SEO_AUDIT 落地记录)

配套审计报告:IMA 知识库「网站测试」→ SECURITY_SEO_AUDIT.md(扫描 2026-08-06,对象 https://cloud-chip.cn。 本文件记录每一项审计发现的处理状态、具体改动与验证方式,供未来接手的不同开发者直接使用。 版本日志见根目录 CHANGELOG.md

图例: 已落地(代码) · ✔ 已核验(无需改) · 待人工(后台/数据) · 🚫 工具限制 · 🔧 需云端/架构


状态总表

ID 优先级 发现 状态 处理 / 改动位置
SEC-01 P0 CSP 含 unsafe-inline 🔧 需架构 兼容 Tailwind Play CDN;须先完成 REL-03(构建 Tailwind + nonce)再移除,属重构,未动
SEC-02 P1 无 security.txt 已落地 新增 public/.well-known/security.txt(白帽报送入口)
SEC-03 P1 依赖 CVE 未知 🚫 工具限制 本机 composer 不支持 audit 命令;需升级 composer 或在 CI 跑 composer audit / composer outdated
SEC-04 P1 生产 APP_DEBUG 未核实 ✔ 已核验 本地 .envAPP_DEBUG=false / APP_ENV=production / SESSION_SECURE_COOKIE=true;需确认生产 .env 一致
SEC-05 P2 上传未做魔数校验 待人工 现有 image + mimes:jpg,jpeg,png,gif,webp + max:5120 已具备;魔数校验可后续加 Intervention / finfo
SEC-06 P2 UGC 净化一致性 ✔ 已具备 config/purifier.php 双档(default / article);论坛/页脚走 Purifier::clean($html,'article')
REL-01 P0 单源站无 CDN/WAF 🔧 需云端 接入阿里云 CDN/Cloudflare;静态走 CDN、动态回源(运维操作)
REL-02 P0 公开页 no-store 🔧 需架构 当前全局 no-store 为避免 CSRF 419(每页含表单 token);建议经 CDN 边缘缓存(忽略 query + ESI)实现,未盲目放开
REL-03 P1 强依赖外部 Tailwind CDN 🔧 需架构 改为构建期编译 Tailwind → public/css/app.css;同时解决 SEC-01;属重构,单独排期
REL-04 P1 500 页是否暴露堆栈 ✔ 已核验 APP_DEBUG=false 即不泄露;可补 resources/views/errors/500.blade.php(可选)
REL-05 P2 OpCache / 整页缓存 🔧 需云端 开 PHP OpCache;首页/栏目页短时长整页缓存(Redis/文件),运维+代码配合
REL-06 P2 大图未压缩/WebP 待人工 图片转 WebP、启用 gzip/brotli(运维+上传流程)
PHY-01 P0 无边缘 DDoS/WAF 🔧 需云端 上阿里云 DDoS 防护 + WAF(运维操作)
PHY-02 P0 单 ECS 单点 🔧 需云端 定期快照 + 多实例 + SLB;数据库独立 RDS 并自动备份(运维操作)
PHY-03 P1 备份未验证 🔧 需云端 ECS 快照 + 库异地备份 + 恢复演练,保留 ≥30 天,记 RPO/RTO(运维操作)
PHY-04 P2 无健康探活 🔧 需云端 云监控 + supervisor 守护 + 异常自动重启(运维操作)
SEO-01 P0 首页 3 个 <h1> ✔ 已核验(代码) 全站区块已用 <h2>;首页 <h1> 来自 Hero 轮播富文本(DB),多屏则多 <h1>,属后台编辑规范(见下)
SEO-02 P0 产品页标题品牌重复 已落地 app/Models/Product.php::seoTitle() 去掉品牌后缀,视图统一 - $siteName
SEO-03 P0 品牌命名三处不一致 待人工(后台) 代码默认 site_name=深圳市云创芯电子有限公司 已规范;线上「云创芯电子(你身边的PD顾问)」/「官网」后缀来自后台 site_name/seo_title_default,需改规范名
SEO-04 P1 首页 title 堆砌 待人工(后台) 代码默认 seo_title_default=深圳市云创芯电子有限公司 - 多口 TypeC 接口IC 已自然;线上堆砌版来自后台设置,需改自然表述
SEO-05 P1 JSON-LD 仅 Organization 已落地 布局加 WebSite+SearchAction;产品页 Product+BreadcrumbList;文章页 Article+BreadcrumbList
SEO-06 P1 无 hreflang 已落地 布局加 alternate 自引用(zh-CN / x-default
SEO-07 P2 图片 alt 未审计 待人工 产品/方案配图补 alt(含关键词但自然),内容侧完善
SEO-08 P2 内链深度/锚文本 待人工 重要页 ≤3 次点击可达 + 描述性锚文本,内容侧完善
GEO-01 P1 缺 FAQ/HowTo 结构化数据 待人工 文章/产品页加 FAQPage/HowTo schema,内容侧完善
GEO-02 P1 品牌实体歧义 待人工 同 SEO-03Organization 的 sameAs 可指向官方主页/认证平台(代码可加,见备注)
GEO-03 P2 缺作者/权威信号 已落地(部分) 文章页 Article schema 已含 author/publisher/datePublished/dateModified
GEO-04 P2 内容未直接作答 待人工 术语/文章开头用 1–2 句直给定义,内容侧完善
GEO-05 P2 无 llms.txt 已落地 新增 public/llms.txt
GEO-06 P2 单语言限制 待人工 同 SEO-06,英文版可扩展 AI 答案触达(需 URL 化多语言)

已落地改动清单(代码)

  1. SEO-02app/Models/Product.php

    public function seoTitle(): string
    {
        return $this->seo_title ?: $this->name; // 仅实体名;品牌由视图统一追加
    }
    

    视图 resources/views/products/show.blade.php:4@section('title', $product->seoTitle() . ' - ' . $siteName)

  2. SEO-05 / GEO-03 — 结构化数据

    • resources/views/layouts/app.blade.phpOrganization 之后新增 WebSite + SearchAction(站内搜索 url('/search')?q={search_term_string})。
    • resources/views/products/show.blade.php:追加 Product + BreadcrumbListname/description/brand/url/category)。
    • resources/views/articles/show.blade.php:追加 Article + BreadcrumbListheadline/author/publisher/datePublished/dateModified/mainEntityOfPage)。
    • 均用 json_encode(..., JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_HEX_TAG) 防 XSS 与 </script> 截断。
  3. SEO-06resources/views/layouts/app.blade.php <head>

    <link rel="alternate" hreflang="zh-CN" href="{{ url()->current() }}">
    <link rel="alternate" hreflang="x-default" href="{{ url('/') }}">
    
  4. SEC-02public/.well-known/security.txtContact / Expires / Preferred-Languages / Policy)。

  5. GEO-05public/llms.txt(站点说明 + 允许抓取栏目)。


待人工处理(后台 / 数据,非代码)

  • SEO-01(首页多 <h1>:登录后台「外观 → 首页轮播」,编辑各屏富文本时只用 <h2> 作为屏内标题,全站仅首屏一个 <h1>(或在富文本里不用 h1,由 Hero 文案样式承担视觉层级)。多屏都写 h1 会触发多个 h1。
  • SEO-03(品牌名):后台「站点设置」将 site_name 改为 深圳市云创芯电子有限公司(对外简称可用 云创芯电子,但全站统一);seo_title_default 去掉「官网」后缀。
  • SEO-04(首页 title:后台「站点设置」将 seo_title_default 改为自然表述,例如 云创芯电子 - 多口 TypeC 接口IC 与快充方案,去除「PD 接口顾问 拓展坞 视频扩展 端口扩展」式堆砌。
  • GEO-02sameAs:如需强化实体,可在 layouts/app.blade.php 的 Organization JSON-LD 增加 "sameAs": ["https://..."] 指向官方认证平台。
  • SEC-05 / REL-06 / SEO-07 / SEO-08 / GEO-01 / GEO-04:内容/上传流程侧持续完善。

上线自检(curl 清单)

# 安全头(应含 CSP / X-Frame-Options / nosniff / Referrer-Policy / HSTS
curl -sS -I https://cloud-chip.cn/ | grep -iE 'content-security-policy|x-frame|x-content|strict-transport|referrer'

# security.txt 可达
curl -sS -o /dev/null -w 'security.txt=%{http_code}\n' https://cloud-chip.cn/.well-known/security.txt

# llms.txt 可达
curl -sS -o /dev/null -w 'llms.txt=%{http_code}\n' https://cloud-chip.cn/llms.txt

# 产品页标题不应再重复品牌
curl -sS https://cloud-chip.cn/products/cc-pd3168 | grep -iE '<title>'

# 首页 h1 数量(应为 1;若 >1 回到后台改 Hero 富文本)
curl -sS https://cloud-chip.cn/ | grep -c '<h1'

# JSON-LD 含 WebSite / Product / Article
curl -sS https://cloud-chip.cn/ | grep -c 'WebSite'
curl -sS https://cloud-chip.cn/products/cc-pd3168 | grep -c '"@type":"Product"'
curl -sS https://cloud-chip.cn/articles/<某slug> | grep -c '"@type":"Article"'

# hreflang 自引用
curl -sS https://cloud-chip.cn/ | grep -iE 'hreflang'

# sitemap 完整性(应 49 条 <loc>
curl -sS https://cloud-chip.cn/sitemap.xml | grep -c '<loc>'

# 敏感路径不应暴露
for p in /.env /phpinfo.php; do echo "$p -> $(curl -sS -o /dev/null -w '%{http_code}' https://cloud-chip.cn$p)"; done

上线实测扫描(2026-08-08 23:4xcurl 直连 https://cloud-chip.cn

目的:复核 63431dd 审计修复是否在生产环境真正生效。结论:未生效——生产部署为陈旧版本

⚠️ 关键发现:部署陈旧,修复未上线

对线上 HTML/响应头逐项目核验,证明服务器当前运行的是 63431dd 之前的代码:

验证点 预期(63431dd 后) 线上实测 结论
首页 JSON-LD WebSite+SearchAction 仍是旧 Organization 旧代码
首页 hreflang zh-CN / x-default 完全缺失 旧布局
产品页标题 单品牌 … - 深圳市…有限公司 … - 深圳市云创芯电子有限公司 - 深圳市云创芯电子有限公司官网(双品牌) Product::seoTitle()
/.well-known/security.txt 200 404(nginx 直返,文件不在服务器) 文件缺失
/llms.txt 200 404 文件缺失

代码历史已同步(HEAD == origin/main == bc817bf,含 63431dd),故问题在服务器工作树/运行时未更新

根因(二选一或并存)

  1. 服务器 checkout 停留在旧提交git pull 因此前「实时更新」自动提交造成的 origin 分歧而失败/未快进,工作树停在 63431dd 之前。
  2. OPcache + 陈旧编译视图:即便磁盘已是新文件,若 PHP-FPM 的 OPcache validate_timestamps=Off 且部署后未重载,旧字节码(含旧 Product.php、旧编译 Blade)继续服务;.well-known 文件缺失则指向根因 1。

服务器修复命令(在 /www/wwwroot/cloud-chip.cn 执行)

cd /www/wwwroot/cloud-chip.cn
git fetch origin
git reset --hard origin/main          # 强制对齐最新提交(含 63431dd + security.txt/llms.txt
php artisan view:clear                # 清陈旧编译视图
php artisan config:clear
php artisan route:clear
php artisan optimize:clear
# 重载 PHP-FPM 刷新 OPcache(宝塔中对应 PHP 版本,如 8.3)
# 宝塔面板:软件商店 → PHP-8.3 → 重载;或:
# service php-fpm-83 reload    # 视实际服务名调整

修复后用下方命令复核(应全部命中):

curl -s https://cloud-chip.cn/ | grep -oE '"@type": ?"WebSite"|hreflang="zh-CN"'
curl -s -o /dev/null -w '%{http_code}\n' https://cloud-chip.cn/.well-known/security.txt   # 期望 200
curl -s -o /dev/null -w '%{http_code}\n' https://cloud-chip.cn/llms.txt                    # 期望 200
curl -s https://cloud-chip.cn/products/cc-pd3168 | grep -oE '<title>[^<]*</title>'         # 应只含一个品牌

若 security.txt/llms.txt 仍 404,需确认 nginx 是否拦截 .well-known(加 location ~ /\.well-known/ { access_log off; } 或确保 root 指向 public)。

速度实测(2026-08-08

指标 结果 评价
首页 TTFB(热) 0.17s(冷启动曾 1.5s,仅首次)
子页面 TTFB 0.120.13s
gzip 已开启
Cache-Control 全程 no-store 无缓存(REL-02
外部依赖 cdn.tailwindcss.comTailwind Play CDN,渲染阻塞) 拖慢首屏 + SEC-01 根因
CDN 无(直连杭州源站 47.107.30.116 异地延迟(REL-01
图片 alt 3/3 有 alt

SEO/GEO 当前评级(线上=陈旧版,修复未生效)

  • 安全响应头AHSTS/CSP/X-Frame-Options 等已生效,这些早于本次修复即存在)
  • 结构化数据C(仅 Organization,缺 WebSite/Product/Article/Breadcrumb
  • hreflangF(缺失)
  • 标题规范:D(关键词堆砌 + 双品牌 + 品牌名不一致「云创芯电子」vs「深圳市云创芯电子有限公司」)
  • sitemap / robotsA(均 200
  • security.txt / llms.txtF404
  • 速度:B(延迟好,但无缓存+外部 CDN 拖累)
  • 综合 SEO/GEO当前 ≈ C-(基线);待正确部署 63431dd 后可达 B(良好基础),但要到 A 仍需解决标题规范(后台设置)、多 h1(内容编辑)、CSP unsafe-inlineTailwind 构建化)、no-store 缓存、CDN 等遗留项。

备注

  • 本文件与 CHANGELOG.md 需随代码一起提交,确保后续开发者在仓库内即可看到。
  • 状态符号会随修复推进更新;请勿删除「Deferred / 待人工」项,它们是对未来开发者的明确待办。
  • 2026-08-08 实测发现生产部署未包含 63431dd,见上「上线实测扫描」章节——修复命令已给出,部署后务必用所列 curl 复核。