Checklist / 网站基线修复
网站基线修复清单
给开发能直接照做
按“上线前 / 一周内 / 排期”分组;每条写清问题、怎么修、怎么复测。附 Nginx/Cookie 示例,不包含渗透测试。
01Before launch / 上线前
这 5 条,建议上线前过一遍
| 级别 | 检查项 | 怎么修 | 复测 |
|---|---|---|---|
| P2 | 全站 HTTPS + HSTS | HTTP 301 到 HTTPS;确认全站资源无 mixed content;再加 HSTS。 | HTTP 返回 301;响应头有 HSTS。 |
| P2 | Cookie 安全属性 | 登录态 Cookie 加 HttpOnly、Secure、SameSite=Lax/Strict。 | 响应头 Set-Cookie 含三项。 |
| P2 | 安全响应头 | 加 X-Content-Type-Options、X-Frame-Options、Referrer-Policy。 | curl -I 能看到。 |
| P2 | 错误页不回显堆栈 | 生产关闭 debug;统一 404/500 页面,不显示框架/路径/数据库信息。 | 访问不存在路径,页面无堆栈。 |
| P3 | CSP | 先 Content-Security-Policy-Report-Only 收集,再切正式;不要一上来全禁。 | 响应头有 CSP;控制台无大量阻断。 |
# Nginx 基础安全头(示例,按实际调整)
add_header X-Content-Type-Options nosniff always;
add_header X-Frame-Options SAMEORIGIN always;
add_header Referrer-Policy strict-origin-when-cross-origin always;
add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
# 确认全站 HTTPS 后再开 HSTS
add_header Strict-Transport-Security "max-age=31536000" always;
# CSP 先 report-only,观察后再切正式
add_header Content-Security-Policy-Report-Only "default-src 'self'; img-src 'self' data:; style-src 'self' 'unsafe-inline';" always;
02Within a week / 一周内
这些不阻塞上线,但别拖
| 级别 | 检查项 | 怎么修 | 复测 |
|---|---|---|---|
| P3 | Server 版本暴露 | Nginx server_tokens off;;其他中间件同理。 | 响应头不再带具体版本。 |
| P3 | 目录列表 | 关闭 autoindex;确认上传/备份目录不可浏览。 | 访问目录返回 403/404。 |
| P3 | 默认页/调试入口 | 删除默认页、phpinfo、debug 路由;后台路径不要放 robots。 | 常见路径 404。 |
| P4 | robots/sitemap 暴露 | 不要在 robots 写后台/内部路径;sitemap 只列公开页。 | robots 不含敏感路径。 |
03Later / 排期
上线后再补
| 级别 | 检查项 | 怎么修 | 复测 |
|---|---|---|---|
| P4 | 监控/告警 | 加 uptime、5xx、证书到期提醒;备份做恢复演练。 | 能收到告警;恢复演练有记录。 |
| P4 | 依赖/组件升级 | CMS/框架/插件按季度升级;先测试再上线。 | 版本在维护期内。 |
| P4 | 隐私/日志 | 日志脱敏手机号/身份证;隐私政策与实际收集一致。 | 抽查日志无明文敏感信息。 |
注意:这是基线清单,不是渗透测试/等保。CSP/HSTS 配错可能导致页面白屏或无法回退,先在测试环境验证;HSTS 开启前确认全站 HTTPS。修完可预约一次复测。
不想自己逐条对?
预约基线 →发域名,先做一次被动基线,再按清单修。