安全性
最后更新:2026年7月16日
此页面描述了今天在 Astrina.io 实际实施的安全措施。它故意具体,并且故意不完整:在我们没有某些内容的地方,我们会明确说明,而不是暗示其他内容。如果此页面上未列出某项安全控制,请假设我们没有它。
您的数据存储在哪里
Astrina 在欧盟的 OVH 上运行于单个服务器。该服务器由 Hestia 控制面板管理,数据库(MariaDB/MySQL)运行在同一服务器上。Cloudflare 在其前面提供 DNS、CDN、TLS 终止和 WAF。
代表我们处理数据的第三方的完整列表在 Subprocessors 页面上。我们收集什么以及保留多长时间在 Privacy Policy 和 Data Retention 页面中列出。
传输中的加密
所有进出 Astrina.io 的流量都通过 TLS 提供。Cloudflare 配置为完全(严格)模式,这意味着 Cloudflare 与我们的源服务器之间的连接也被加密,并且源证书经过验证。源证书由 Let's Encrypt 颁发。
密码
- 密码仅以哈希形式存储,由 PHP password_hash() 使用 bcrypt (PASSWORD_DEFAULT) 生成,并通过 password_verify() 进行检查。
- 我们从不以明文形式存储您的密码,也从不将其写入日志。Astrina 的任何人都无法读取您的密码或告诉您它是什么。
- 电子邮件验证和密码重置令牌以令牌的 SHA-256 哈希形式存储,且为一次性使用,并会过期。
- 在检查密码是否与已知泄露列表匹配时,我们使用 Pwned Passwords k-匿名性方法:仅发送密码 SHA-1 哈希的前五个字符。密码本身永远不会离开浏览器或我们的服务器。
Astrina 账户没有双因素认证。请参见下面的“我们还没有什么”。
会话和表单
- 会话 cookie 名为 astrsess。它被设置为 HttpOnly(JavaScript 无法读取),Secure(仅通过 HTTPS 发送)和 SameSite=Lax。
- 状态改变的表单提交携带 CSRF 令牌,因此其他网站无法使您的浏览器在您的账户中执行操作。
API 密钥
- 您的 API 密钥仅在请求头中被接受 — X-Api-Key 或 Authorization: Bearer。我们故意不接受 URL 查询字符串中的密钥。
- 这个选择很重要:放置在 URL 中的密钥往往会出现在服务器访问日志、代理日志、浏览器历史记录和发送到其他网站的 Referer 头中。放在头中的密钥则不会。
- 您可以随时从 /my/api.php 重新生成您的密钥。重新生成会立即撤销旧密钥。
- 每个计划都有每日调用配额。一旦用完,API 将返回 HTTP 429,而不是继续处理请求。
跨源访问 (CORS)
我们的公共 API 方法故意对任何来源开放 (Access-Control-Allow-Origin: *),因为它们提供公共目录数据。私有分析方法 /api/v1/stats 完全不发送 Allow-Origin 头 — 因此,其他网站上的网页无法使用访客的浏览器读取您的统计信息,即使它以某种方式拥有您的密钥。
SEO 爬虫加固
我们的 SEO 爬虫获取客户提供的 URL,这正是被滥用以访问内部系统 (SSRF) 的功能。它对此进行了加固:
- 仅接受 http 和 https URL。
- 拒绝私有、回环和链接本地 IP 范围。
- 解析的 IP 地址是固定的,因此主机名在检查和请求之间不能解析为不同的内容。
- 每个重定向跳转都根据相同的规则重新验证,而不仅仅是第一个 URL。
- 响应体大小有限制。
会话录制默认是被遮蔽的
如果您启用可选的会话录制器,遮蔽默认是开启的,并在访客的浏览器中强制执行 — 在任何内容发送给我们之前:
- 密码、电子邮件和电话输入字段根本不传输任何值。既不是文本,也不是其遮蔽版本,甚至连长度都不传输。
- 支付卡字段的处理方式相同。
- 在其他输入中输入的文本会被掩盖为圆点。
- 您在页面中标记为[data-astr-mask]属性的任何部分在离开浏览器之前都会被编辑。
录音默认保留30天。保留期限是可配置的。
评论的证据文件
作为某些评论类型证据的图像和视频存储在网络根目录之外,因此无法通过猜测URL来获取。它们仅通过一个受限的端点提供,除非评论已被批准,或者您是评论的作者,或者您是管理员,否则返回403。
滥用和机器人控制
- 评论提交按IP地址限制速率,并且评论经过审核。来自访客的评论仅在审核后发布;来自已登录成员的评论立即发布。
- 分析流量通过用户代理规则以及通过反向DNS进行的数据中心和托管IP分类来过滤机器人。
管理员访问
管理员区域通过对账户的角色检查进行限制。管理员账户使用与其他人相同的登录机制,这意味着它们也不受双因素身份验证的保护。
我们发送的电子邮件
外发电子邮件(来自noreply@astrina.io)由我们自己的Exim邮件服务器发送,并配置了DKIM,因此收件人可以验证消息确实来自我们。我们不会将您的地址传递给第三方邮件提供商。
备份和恢复服务
Hestia每天大约在05:12 UTC进行一次文件和数据库的备份。
备份存储在运行服务的同一服务器上。没有异地副本,也没有地理冗余复制。 这是一个真实的限制,您应该将其纳入自己的计划:摧毁服务器的事件也会摧毁存储在其上的备份。实际上,任何时候大约只有一个每日副本存在。
如果需要恢复服务,我们将从最近的每日备份中恢复。我们不保证恢复时间目标(RTO)或恢复点目标(RPO),也不提供公共服务水平协议。SLA仅在单独的合同中达成一致时存在。
我们尚未拥有的
我们宁愿直截了当地告诉您这些,而不是让安全页面暗示更多内容。Astrina目前没有:
- 没有双因素身份验证(2FA),也没有Astrina面板本身的单点登录(SSO)。
- 没有第三方安全审计,也没有渗透测试。没有进行过,因此没有结果可供发布。
- 没有ISO 27001、SOC 2或任何其他认证。我们没有根据任何标准获得认证或审计。
- 没有离线备份。请参阅上面的备份部分。
- 没有漏洞奖励计划。我们接受报告,但无法支付报酬。
- 没有正式的服务水平协议,也没有发布的正常运行时间保证。
如果这些对您来说是必需的,那么今天缺失,您应该相应地做出决定。
报告安全问题
如果您发现漏洞,请将其报告给support@astrina.io。这是安全报告的唯一联系地址。
如果您能提供受影响的 URL 或端点、重现步骤以及攻击者可能实现的目标,将会有所帮助。在公开披露之前,请给我们合理的机会来修复问题,并且在测试时请不要访问、修改或删除他人的数据。
我们不运行漏洞奖励计划,无法为报告提供支付或奖励。我们也不承诺响应时间,因为我们不提供公开的服务水平协议——但发送到此地址的报告确实会到达我们,并且我们会对此采取行动。
您的数据及其控制权
- 您可以随时从面板中删除单个跟踪站点,这将删除其数据。
- 您可以随时从/my/api.php重新生成或撤销您的 API 密钥。
- 今天面板中没有自助账户删除按钮。要删除您的账户和数据,请发送电子邮件至support@astrina.io,我们会根据请求进行处理。
相关页面
此页面回答的问题
- 安全性
- 安全性 指南
- 安全性 解释
- 安全性 教程
- 开始使用 安全性
- 安全性 最佳实践
- 安全性 逐步
- 什么是 安全性
- 安全性 适合初学者
- 安全性 清单
- 安全性 示例
- 为什么 安全性 重要