安全
网站安全
用新手能理解的方式,判断什么时候需要 Cloudflare、限流、人机验证、上传限制和密钥保护
为什么要关心安全
早期产品的安全问题通常不是电影里的“黑客入侵”。更常见的是:你的短信验证码被人疯狂调用,AI 额度一夜用完,反馈表单塞满垃圾内容,上传入口被当成免费网盘,或者支付成功通知被伪造。
这些问题的共同点是:攻击者不一定要真的“攻破系统”,只要能反复调用某个入口,就可能让你花钱、让服务变慢,或者让正常用户没法使用。
先按这几个问题判断
| 你遇到的问题 | 优先措施 | 说明 |
|---|---|---|
| 网站请求突然暴涨,页面变慢 | Cloudflare 代理、WAF、边缘限流 | 先在访问到达服务器前挡掉明显异常流量 |
| 短信验证码、邮件验证码被刷 | 接口限流,必要时开启人机验证 | 这是最容易直接产生账单的入口 |
| 登录失败次数异常增多 | 登录限流、2FA、人机验证 | 这是常见的撞库和批量试密码 |
| AI 生成、搜索、上传被频繁调用 | 单独给这些高成本动作限流 | 高成本动作不要只靠全站统一限制 |
| 上传文件越来越多、越来越大 | 上传大小、类型、次数限制 | 防止存储费用失控,也避免违规文件 |
| 担心 API key 泄露 | 密钥只放环境变量,提交前做检查 | 泄露后要第一时间轮换,而不是只删代码 |
安全措施不是越多越好。我的建议是:默认先把 Cloudflare 代理、基础限流、上传边界和密钥管理做好;Turnstile 这类会影响体验的验证,只放在高风险动作或攻击期使用。
常见风险
常见风险
短信被刷、AI 额度被刷、垃圾表单、上传滥用、支付通知伪造这些真实场景。
Cloudflare 防护
小橙云、DDoS、WAF、边缘限流、Bot Fight Mode 和 Under Attack 的使用边界。
接口限流
为什么验证码、AI、上传、搜索这些入口要单独限制调用次数。
人机验证
Local PoW 与 Cloudflare Turnstile 的选择,什么时候开启,什么时候不要开启。
上传限制
文件大小、类型、次数和存储成本的控制方式。
密钥保护
API key、短信密钥、AI key、支付密钥泄露后会发生什么,以及怎么处理。
安全能力分层
| 层级 | 保护什么 | 典型措施 |
|---|---|---|
| 访问入口 | 网站别被流量打垮 | Cloudflare 代理、WAF、边缘限流 |
| 付费动作 | 短信、AI、邮件、搜索、上传别被刷 | 应用限流、登录态、配额 |
| 人机判断 | 批量脚本不要轻易通过 | Local PoW、Cloudflare Turnstile |
| 数据和文件 | 文件别无限上传,密钥别泄露 | 上传限制、环境变量、安全检查 |
| 账号权限 | 用户和管理员别越权 | 路由保护、权限模型、2FA、管理员审计 |
账号和权限
下面这些页面更偏开发和后台管理,但仍然属于安全体系:
- 路由保护:哪些页面必须登录、哪些页面只有管理员能看。
- 权限模型:用角色和权限判断用户能做什么。
- 双因素认证:给管理员和高风险账号加第二道验证。
- 管理员系统:管理员角色、权限和用户管理。
- 跨子域名登录:多个子域共享登录态时需要注意的配置。