Bảo mật

Điều khiển từ xa một robot vật lý qua internet đòi hỏi nhiều hơn một biểu mẫu đăng nhập. Trang này mô tả cách xác thực và vai trò hoạt động, cách khóa API nên được xử lý, những cơ chế nào bảo vệ việc điều khiển trực tiếp, những gì nhật ký kiểm toán ghi lại, và cách báo cáo một lỗ hổng bảo mật.

Cập nhật lần cuối 2026-08-09

Xác thực

Tài khoản được quản lý bởi Supabase Auth với email và mật khẩu, Google OAuth, hoặc GitHub OAuth. Sau khi đăng nhập, trình duyệt của bạn giữ một session token (một JWT) được middleware của nền tảng tự động làm mới, vì vậy một phiên đang hoạt động không âm thầm hết hạn giữa lúc làm việc.

API chấp nhận session token đó dưới hai hình thức: hoặc dưới dạng cookie phiên mà trang tổng quan đã gửi sẵn, hoặc dưới dạng tiêu đề Authorization Bearer. Truy cập theo chương trình không cần đăng nhập trình duyệt sử dụng khóa API thay thế, được mô tả bên dưới. Các endpoint từ chối các yêu cầu không có thông tin xác thực hợp lệ; chỉ những route công khai được nêu rõ, chẳng hạn kiểm tra sức khỏe và biểu mẫu liên hệ, hoạt động mà không cần xác thực.

Vai trò và quyền hạn

Mỗi tài khoản có chính xác một vai trò: CLIENT, OPERATOR, hoặc ADMIN. Khách hàng sở hữu robot và trả tiền cho các phiên, người vận hành điều khiển robot và kiếm tiền từ các phiên, và quản trị viên vận hành nền tảng. Bạn chọn giữa khách hàng và người vận hành trong quá trình onboarding; vai trò quản trị viên được chỉ định bởi các quản trị viên nền tảng và không thể tự chọn.

Khả năngCLIENTOPERATORADMIN
Đăng ký và quản lý robotKhông
Bắt đầu và chạy phiên điều khiển từ xaKhông
Xem phiênTrên robot của mìnhPhiên của mìnhTất cả
Dataset và xuất dữ liệuKhôngTất cả
Thanh toán, hóa đơn, phương thức thanh toánKhôngTất cả
Thu nhập và chi trảKhôngTất cả
Phê duyệt chứng nhậnKhôngChỉ yêu cầu
Giải quyết tranh chấpChỉ đệ trìnhKhông

Kiểm tra vai trò diễn ra ở phía server trên mỗi yêu cầu, không phải trong giao diện người dùng. Bên dưới API, quyền truy cập cơ sở dữ liệu bị giới hạn thêm bằng các chính sách row-level security, vì vậy ngay cả một lỗi trong một endpoint cũng không biến thành quyền truy cập tự do vào các hàng dữ liệu của tài khoản khác.

Khóa API

Khóa API cho phép script và server truy cập mà không cần đăng nhập trình duyệt. Bạn tạo và thu hồi chúng tại /dashboard/settings; khóa mang tiền tố ayr_live_ và được gửi dưới dạng tiêu đề Authorization Bearer. Một khóa hoạt động với vai trò và quyền hạn của tài khoản đã tạo ra nó, vì vậy một khóa bị rò rỉ tệ hại chính xác như một mật khẩu bị rò rỉ.

  • Giữ khóa ở phía server. Chúng không thuộc về JavaScript phía client, ứng dụng di động, hoặc repository công khai.
  • Sử dụng một khóa cho mỗi tích hợp. Khi có gì đó rò rỉ, bạn muốn thu hồi một bên tiêu thụ, không phải tất cả.
  • Luân chuyển mà không gián đoạn: tạo khóa thay thế trước, triển khai nó, rồi mới thu hồi khóa cũ tại /dashboard/settings.
  • Thu hồi ngay lập tức khi có bất kỳ nghi ngờ nào. Việc tạo một khóa mới tốn vài giây; một kẻ tấn công có khóa hợp lệ có thể làm bất cứ điều gì tài khoản của bạn có thể làm.

Cơ chế bảo vệ trong khi điều khiển trực tiếp

Việc điều khiển trực tiếp bị ràng buộc với một hợp đồng cho thuê phiên. Một robot chỉ chấp nhận lệnh khi nó nằm trong chính xác một phiên ACTIVE, và chỉ từ người vận hành đang giữ phiên đó; chính robot đó được đánh dấu IN_SESSION đối với mọi người khác. Một người vận hành có thể giữ nhiều nhất một phiên ACTIVE hoặc PAUSED tại một thời điểm, điều này loại trừ khả năng một người điều khiển danh nghĩa hai cánh tay cùng lúc.

Cockpit cung cấp một emergency stop dừng cánh tay ngay lập tức, và việc tạm dừng hoặc kết thúc phiên dừng toàn bộ dòng lệnh. Bên cạnh đó, nền tảng giám sát hoạt động của người vận hành: sau một khoảng thời gian không có đầu vào, một cảnh báo không hoạt động được gửi đi, và nếu người vận hành vẫn không hoạt động, phiên tự động dừng lại. Điều này bảo vệ cả hai bên, khách hàng khỏi việc trả tiền cho thời gian nhàn rỗi và robot khỏi việc ở trong trạng thái không kiểm soát với một hợp đồng cho thuê đang hoạt động.

Nhật ký kiểm toán

Mỗi phiên giữ một log sự kiện: bắt đầu và kết thúc, tạm dừng và tiếp tục, kiểm tra hoạt động, cảnh báo không hoạt động, chuyển đổi người vận hành, yêu cầu gia hạn, và lỗi, mỗi cái đều có dấu thời gian. Khi một tranh chấp được xem xét, log sự kiện này là bằng chứng chính, đó là một lý do nữa vì sao nền tảng ghi nó tự động thay vì dựa vào trí nhớ của bất kỳ ai.

Ngoài các phiên, các hành động quan trọng của nền tảng được ghi lại trong một nhật ký kiểm toán với id của người dùng thực hiện, hành động, tài nguyên bị ảnh hưởng, và metadata. Thay đổi hồ sơ, các giao dịch liên quan đến thanh toán, và hành động của quản trị viên đều để lại các mục ghi. Các bản ghi kiểm toán được nền tảng ghi và không thể chỉnh sửa qua bất kỳ giao diện hướng đến người dùng nào.

Mã hóa và bảo vệ dữ liệu

Toàn bộ lưu lượng đến và đi từ nền tảng được mã hóa trong quá trình truyền tải bằng TLS, kể cả luồng video và tín hiệu điều khiển. Ở lớp dữ liệu, các chính sách row-level security giới hạn quyền truy cập cơ sở dữ liệu theo từng tài khoản. Dữ liệu thanh toán là ranh giới rõ ràng nhất trong tất cả: thẻ và thông tin ngân hàng được xử lý hoàn toàn bởi Stripe và không bao giờ chạm đến server của AY-Robots.

Báo cáo một lỗ hổng bảo mật

Nếu bạn tìm thấy một vấn đề bảo mật, hãy báo cáo nó một cách có trách nhiệm qua trang /security hoặc biểu mẫu /contact sử dụng danh mục Bug Report. Bao gồm những gì bạn tìm thấy, ở đâu, và cách tái tạo nó; không truy cập dữ liệu của người dùng khác vượt quá mức tối thiểu cần thiết để chứng minh vấn đề, và không công bố chi tiết trước khi chúng tôi có cơ hội hợp lý để sửa nó. Chúng tôi đọc mọi báo cáo.

Câu hỏi thường gặp

Một người vận hành có thể xem dữ liệu thanh toán của tôi không?

Không. Thanh toán, hóa đơn, và phương thức thanh toán là các khả năng thuộc vai trò khách hàng. Một người vận hành trong một phiên trên robot của bạn thấy bối cảnh của phiên, không phải tài khoản hay dữ liệu thanh toán của bạn.

Điều gì xảy ra với robot nếu kết nối của tôi bị mất giữa phiên?

Dòng lệnh dừng lại cùng với kết nối, và cơ chế bảo vệ không hoạt động sẽ tiếp quản: sau một khoảng thời gian cảnh báo không có đầu vào, phiên tự động dừng. Khách hàng không bị tính phí cho phần đuôi nhàn rỗi vượt quá điểm dừng đó.

Làm thế nào để tôi luân chuyển một khóa API một cách an toàn?

Tạo khóa mới tại /dashboard/settings, chuyển tích hợp của bạn sang khóa đó, xác minh nó hoạt động, rồi thu hồi khóa cũ. Làm theo thứ tự này nghĩa là không có gián đoạn và không có khoảng thời gian nào không có khóa hợp lệ nào tồn tại.

Dữ liệu thanh toán của tôi có được lưu trữ trên server của AY-Robots không?

Không. Thẻ và thông tin ngân hàng đi thẳng đến Stripe. Nền tảng chỉ lưu trữ các tham chiếu đến các đối tượng Stripe, không bao giờ lưu dữ liệu thanh toán gốc.