安全
通过互联网遥操作一台真实机器人,所需要的安全保障远不止一个登录表单。本页说明身份验证和角色的运作方式、API 密钥应如何管理、实时控制受哪些机制保护、审计日志记录了什么,以及如何报告安全漏洞。
最后更新 2026-08-09
身份验证
账户由 Supabase Auth 管理,支持邮箱密码、Google OAuth 或 GitHub OAuth。登录后,您的浏览器会持有一个会话令牌(JWT),平台中间件会自动刷新它,因此一个正常工作的会话不会在您操作到一半时悄悄过期。
API 接受这个会话令牌的两种形式:作为仪表盘本来就会发送的会话 cookie,或者作为 Authorization Bearer 请求头。没有浏览器登录的程序化访问则改用下文所述的 API 密钥。各接口会拒绝没有有效凭据的请求,只有明确公开的路由,例如健康检查和联系表单,才无需身份验证即可使用。
角色与权限
每个账户恰好拥有一个角色:CLIENT、OPERATOR 或 ADMIN。客户拥有机器人并为会话付费,操作员控制机器人并从会话中获得收益,管理员运营整个平台。您在入驻流程中选择客户或操作员,管理员角色由平台管理员指定,无法自行选择。
| 能力 | CLIENT | OPERATOR | ADMIN |
|---|---|---|---|
| 注册并管理机器人 | 是 | 否 | 是 |
| 启动并运行遥操作会话 | 否 | 是 | 是 |
| 查看会话 | 仅限自己的机器人 | 仅限自己的会话 | 全部 |
| 数据集与导出 | 是 | 否 | 全部 |
| 账单、发票、支付方式 | 是 | 否 | 全部 |
| 收益与收益结算 | 否 | 是 | 全部 |
| 批准认证 | 否 | 仅可申请 | 是 |
| 处理争议 | 仅可提交 | 否 | 是 |
角色检查在每个请求上都发生在服务端,而不是在界面中。在 API 之下,数据库访问还额外受到行级安全策略的限制,因此即使某个接口出现漏洞,也不会转变为对其他账户数据行的自由访问。
API 密钥
API 密钥让脚本和服务器无需浏览器登录即可访问平台。您在 /dashboard/settings 中创建和撤销它们;密钥带有 ayr_live_ 前缀,以 Authorization Bearer 请求头的形式发送。一个密钥拥有创建它的那个账户的角色和权限,因此密钥泄露的严重程度和密码泄露完全相同。
- 将密钥保存在服务端。它们不应出现在客户端 JavaScript、移动应用或公开代码仓库中。
- 每个集成使用一个独立的密钥。一旦发生泄露,您只需要撤销一个使用方,而不必撤销全部。
- 无停机轮换:先创建替换密钥,部署它,然后再到 /dashboard/settings 中撤销旧密钥。
- 一有怀疑就立即撤销。创建一个新密钥只需几秒钟,而持有有效密钥的攻击者,能做到您账户所能做的任何事。
实时控制期间的安全机制
实时控制绑定于一份会话租约。一台机器人只有在恰好处于一个 ACTIVE 会话中时才接受指令,并且只接受持有该会话的操作员发出的指令;对其他所有人来说,该机器人都被标记为 IN_SESSION。一名操作员同一时间最多只能持有一个 ACTIVE 或 PAUSED 会话,这排除了同一个人同时名义上控制两台机械臂的可能性。
操控台提供一个可以立即停止机械臂的紧急停止按钮,暂停或结束会话则会整体停止指令流。除此之外,平台会监控操作员的活动:一段时间没有输入后会发出不活动警告,如果操作员持续不活动,会话会自动停止。这同时保护了双方:客户不必为空闲时间付费,机器人也不会在带着一份有效租约的情况下处于失控状态。
审计日志
每个会话都会保留一份事件日志:开始和结束、暂停和恢复、活动检查、不活动警告、操作员切换、延长请求,以及错误,每一条都带有时间戳。审核争议时,这份事件日志就是主要的证据来源,这也是平台自动写入它、而不是依赖任何人的记忆的另一个原因。
除会话之外,重要的平台操作也会被记录进一份审计日志,包含操作用户的 id、操作内容、受影响的资源,以及元数据。个人资料变更、与支付相关的交易,以及管理员操作,都会留下记录。审计记录由平台写入,无法通过任何面向用户的界面进行编辑。
加密与数据保护
所有往返平台的流量在传输过程中都使用 TLS 加密,包括视频流和控制信号。在数据层面,行级安全策略按账户限制数据库访问。支付数据的边界最为清晰:银行卡和银行账户信息完全由 Stripe 处理,永远不会经过 AY-Robots 的服务器。
报告安全漏洞
如果您发现了安全问题,请通过 /security 页面或使用 Bug Report 分类的 /contact 表单负责任地报告它。请说明您发现了什么、在哪里发现的,以及如何复现;除演示问题所需的最小范围外,请不要访问其他用户的数据,也请不要在我们有合理时间修复之前公开细节。我们会阅读每一份报告。
常见问题
操作员能看到我的账单数据吗?▾
不能。账单、发票和支付方式属于客户角色的能力范围。在您机器人上进行会话的操作员,看到的是会话相关的上下文,而不是您的账户或支付数据。
如果会话进行到一半我的连接中断,机器人会怎样?▾
指令流会随着连接一起停止,不活动安全机制会随即介入:在没有输入的警告期过后,会话会自动停止。客户不会为该停止点之后的空闲时段付费。
如何安全地轮换 API 密钥?▾
在 /dashboard/settings 中创建新密钥,将您的集成切换到新密钥,验证其可以正常工作,然后撤销旧密钥。按这个顺序操作意味着零停机,也不会出现没有任何有效密钥的窗口期。
我的支付数据存储在 AY-Robots 的服务器上吗?▾
不存储。银行卡和银行账户信息直接发送给 Stripe。平台只存储对 Stripe 对象的引用,从不存储底层的支付数据。