安全
双重验证、验证码、自定义后台 URL、年龄验证以及安全加固。
TubePress 默认已经过安全加固——每个表单均内置 CSRF 防护、敏感操作速率限制、现代密码哈希及会话重置。在此基础上,多项控制选项可进一步将管理后台锁定得更严格。
本页将介绍双因素认证、CAPTCHA、将管理登录移至隐秘 URL、年龄验证门、传输安全,并以加固清单收尾。其中大部分设置位于 设置 → 安全。
安全概述
良好的安全防护是分层的:任何单一控制措施都不够充分,但组合在一起可使您的站点成为难以攻克的目标。安全设置中可管理的控制项包括:
- 双因素认证——管理员登录时的一次性验证码。
- CAPTCHA——防止机器人滥用您的公开表单。
- 自定义管理 URL——对扫描器隐藏登录入口。
在底层,框架已使用 Argon2id(在不支持 Argon2 的环境中使用 bcrypt)对密码进行哈希处理,对每个改变状态的请求验证 CSRF 令牌,在登录时重置会话,并对反复的登录、注册和密码重置尝试进行速率限制。
双因素认证
双因素认证(2FA)在管理员登录时增加基于时间的一次性密码(TOTP),使得仅凭被盗密码无法登录。它与 Google Authenticator、Authy、1Password 或任何兼容 TOTP 的应用程序配合使用。
要启用,请打开设置 → 安全,然后:
- 点击启用 2FA 以生成密钥。
- 用认证应用扫描二维码,或手动输入显示的密钥。
- 输入当前的 6 位验证码以验证并开启 2FA。
密钥与各自账户绑定,因此每位管理员需单独注册。后续停用 2FA 需要当前验证码,且该门控为失败关闭模式:一旦设置了验证码,即使您已通过公开登录表单认证,管理面板仍会在进入时要求验证码。
CAPTCHA
CAPTCHA 可阻止对您公开表单的自动化滥用。在设置 → 安全中选择提供商:
粘贴提供商的站点密钥和密钥,选择浅色或深色组件主题,然后选择要保护的表单——注册、评论和联系表单各自独立切换,设置提供商后默认启用。CAPTCHA 与评论中描述的评论反垃圾套件叠加使用。
自定义管理 URL
自动扫描器会猛烈攻击 /admin/login 等知名路径。您可以将登录表单移至一个隐秘的 slug,使这些探测无功而返。在设置 → 安全中,设置一个自定义登录 slug(3–50 个字符,小写字母、数字和连字符)。登录入口将位于 /your-secret-slug 而非 /admin/login;仪表板本身仍在 /admin,依然受到认证保护。
/admin/login 将停止工作。这是通过混淆实现安全——它不能替代强密码和 2FA。如果忘记了 slug,可直接在数据库中清除:DELETE FROM settings WHERE setting_key='admin_login_slug'。年龄验证门
对于成人网站,内置的年龄验证门插件会在您的内容前显示全屏年龄验证墙,支持多种验证模式、可选的 RTA meta 标签,以及指向您的条款、2257 和隐私页面的链接。可从 /admin/plugins 启用和配置。
由于它是审核和合规设置的一部分,完整的操作指南位于审核页面。
HTTPS & 头部
始终通过 HTTPS 提供您的站点——它可在传输过程中保护密码和会话 Cookie。来自 Let's Encrypt(Certbot)的免费证书即可满足需求。如果 TLS 在上游代理或负载均衡器处终止,请转发方案信息(例如 X-Forwarded-Proto 头部),以便应用程序知晓请求是安全的。
在生产环境中,还需关闭 PHP 的 display_errors(防止堆栈跟踪信息被访客看到)和 expose_php(防止版本信息被暴露)。健康检查会为您标记所有这三项。
加固清单
在上线前(以及上线后定期)检查此列表:
- 设置一个长且唯一的管理员密码。
- 为每个员工账户注册 2FA。
- 将登录入口移至自定义管理 URL。
- 在注册、评论和联系表单上启用 CAPTCHA。
- 通过 HTTPS 提供所有内容。
- 关闭
display_errors和expose_php。 - 为员工分配最低所需权限——优先使用版主而非管理员。
- 保持 PHP 和 TubePress 及时更新,并定期执行备份。
后续步骤