ความปลอดภัย
การควบคุมหุ่นยนต์จริงทางไกลผ่านอินเทอร์เน็ตต้องการมากกว่าฟอร์มเข้าสู่ระบบ หน้านี้อธิบายว่าการยืนยันตัวตนและบทบาททำงานอย่างไร ควรจัดการ API key อย่างไร มีกลไกใดปกป้องการควบคุมแบบสด บันทึกการตรวจสอบบันทึกอะไรบ้าง และวิธีรายงานช่องโหว่ด้านความปลอดภัย
อัปเดตล่าสุด 2026-08-09
การยืนยันตัวตน
บัญชีถูกจัดการโดย Supabase Auth ด้วยอีเมลและรหัสผ่าน Google OAuth หรือ GitHub OAuth หลังจากเข้าสู่ระบบ เบราว์เซอร์ของคุณจะเก็บ session token (JWT หนึ่งตัว) ที่จะถูกรีเฟรชโดยอัตโนมัติโดย middleware ของแพลตฟอร์ม ดังนั้นเซสชันที่ใช้งานอยู่จึงไม่หมดอายุอย่างเงียบ ๆ ระหว่างที่คุณกำลังทำงาน
API ยอมรับ session token นั้นในสองรูปแบบ: ไม่ว่าจะเป็นคุกกี้เซสชันที่แดชบอร์ดส่งอยู่แล้ว หรือเป็นส่วนหัว Authorization Bearer การเข้าถึงแบบโปรแกรมโดยไม่ต้องเข้าสู่ระบบเบราว์เซอร์ใช้ API key แทน ซึ่งอธิบายไว้ด้านล่าง endpoint จะปฏิเสธคำขอที่ไม่มีข้อมูลยืนยันตัวตนที่ถูกต้อง มีเพียง route สาธารณะที่ระบุไว้อย่างชัดเจนเท่านั้น เช่น การตรวจสอบสุขภาพและแบบฟอร์มติดต่อ ที่ทำงานได้โดยไม่ต้องยืนยันตัวตน
บทบาทและสิทธิ์
ทุกบัญชีมีบทบาทเดียวเท่านั้น: CLIENT, OPERATOR หรือ ADMIN ลูกค้าเป็นเจ้าของหุ่นยนต์และจ่ายเงินสำหรับเซสชัน ผู้ควบคุมควบคุมหุ่นยนต์และได้รับเงินจากเซสชัน และผู้ดูแลระบบดำเนินการแพลตฟอร์ม คุณเลือกระหว่างลูกค้าและผู้ควบคุมระหว่าง onboarding บทบาทผู้ดูแลระบบถูกกำหนดโดยผู้ดูแลแพลตฟอร์มและไม่สามารถเลือกได้ด้วยตนเอง
| ความสามารถ | CLIENT | OPERATOR | ADMIN |
|---|---|---|---|
| ลงทะเบียนและจัดการหุ่นยนต์ | ได้ | ไม่ได้ | ได้ |
| เริ่มและรันเซสชันควบคุมทางไกล | ไม่ได้ | ได้ | ได้ |
| ดูเซสชัน | บนหุ่นยนต์ของตัวเอง | เซสชันของตัวเอง | ทั้งหมด |
| ชุดข้อมูลและการส่งออก | ได้ | ไม่ได้ | ทั้งหมด |
| การเรียกเก็บเงิน ใบแจ้งหนี้ วิธีการชำระเงิน | ได้ | ไม่ได้ | ทั้งหมด |
| รายได้และการจ่ายเงิน | ไม่ได้ | ได้ | ทั้งหมด |
| อนุมัติการรับรอง | ไม่ได้ | ขอได้เท่านั้น | ได้ |
| แก้ไขข้อพิพาท | ยื่นได้เท่านั้น | ไม่ได้ | ได้ |
การตรวจสอบบทบาทเกิดขึ้นฝั่งเซิร์ฟเวอร์ในทุกคำขอ ไม่ใช่ในส่วนติดต่อผู้ใช้ ใต้ API การเข้าถึงฐานข้อมูลถูกจำกัดเพิ่มเติมด้วยนโยบาย row-level security ดังนั้นแม้แต่บั๊กใน endpoint หนึ่งก็ไม่กลายเป็นการเข้าถึงข้อมูลของบัญชีอื่นได้อย่างอิสระ
API Key
API key ให้สคริปต์และเซิร์ฟเวอร์เข้าถึงได้โดยไม่ต้องเข้าสู่ระบบเบราว์เซอร์ คุณสร้างและเพิกถอนมันได้ที่ /dashboard/settings คีย์มีคำนำหน้า ayr_live_ และถูกส่งเป็นส่วนหัว Authorization Bearer คีย์หนึ่งทำงานด้วยบทบาทและสิทธิ์ของบัญชีที่สร้างมัน ดังนั้นคีย์ที่รั่วไหลจึงร้ายแรงพอ ๆ กับรหัสผ่านที่รั่วไหล
- เก็บคีย์ไว้ฝั่งเซิร์ฟเวอร์ มันไม่ควรอยู่ใน JavaScript ฝั่ง client แอปมือถือ หรือ repository สาธารณะ
- ใช้หนึ่งคีย์ต่อหนึ่งการเชื่อมต่อ เมื่อมีอะไรรั่วไหล คุณจะได้เพิกถอนแค่ผู้ใช้รายเดียว ไม่ใช่ทั้งหมด
- หมุนเวียนโดยไม่มีการหยุดชะงัก: สร้างคีย์ทดแทนก่อน นำไปใช้งาน แล้วจึงเพิกถอนคีย์เก่าที่ /dashboard/settings
- เพิกถอนทันทีเมื่อมีข้อสงสัย การสร้างคีย์ใหม่ใช้เวลาเพียงไม่กี่วินาที ผู้โจมตีที่มีคีย์ที่ถูกต้องสามารถทำทุกอย่างที่บัญชีของคุณทำได้
กลไกป้องกันระหว่างการควบคุมแบบสด
การควบคุมแบบสดถูกผูกไว้กับสัญญาเช่าเซสชัน หุ่นยนต์จะรับคำสั่งก็ต่อเมื่ออยู่ในเซสชัน ACTIVE เพียงหนึ่งเดียวเท่านั้น และรับจากผู้ควบคุมที่ถือเซสชันนั้นเท่านั้น หุ่นยนต์เองจะถูกทำเครื่องหมายเป็น IN_SESSION สำหรับทุกคนอื่น ผู้ควบคุมหนึ่งคนสามารถถือเซสชัน ACTIVE หรือ PAUSED ได้มากที่สุดหนึ่งเซสชันในเวลาเดียวกัน ซึ่งขจัดความเป็นไปได้ที่คนหนึ่งจะควบคุมแขนสองตัวพร้อมกันในนาม
Cockpit มี emergency stop ที่หยุดแขนทันที และการหยุดชั่วคราวหรือสิ้นสุดเซสชันจะหยุดกระแสคำสั่งทั้งหมด นอกจากนี้ แพลตฟอร์มยังตรวจสอบกิจกรรมของผู้ควบคุม หลังจากช่วงเวลาที่ไม่มีอินพุต คำเตือนความไม่เคลื่อนไหวจะถูกส่งออกไป และหากผู้ควบคุมยังคงไม่เคลื่อนไหว เซสชันจะหยุดโดยอัตโนมัติ สิ่งนี้ปกป้องทั้งสองฝ่าย ลูกค้าจากการจ่ายเงินสำหรับเวลาที่ว่างเปล่า และหุ่นยนต์จากการอยู่ในสถานะที่ไม่มีการควบคุมพร้อมสัญญาเช่าที่ยังใช้งานอยู่
บันทึกการตรวจสอบ
ทุกเซสชันเก็บ log เหตุการณ์ไว้: เริ่มและจบ หยุดชั่วคราวและดำเนินการต่อ การตรวจสอบกิจกรรม คำเตือนความไม่เคลื่อนไหว การสลับผู้ควบคุม คำขอขยายเวลา และข้อผิดพลาด แต่ละอย่างมีการประทับเวลา เมื่อมีการตรวจสอบข้อพิพาท log เหตุการณ์นี้คือหลักฐานหลัก ซึ่งเป็นอีกเหตุผลหนึ่งว่าทำไมแพลตฟอร์มจึงบันทึกมันโดยอัตโนมัติแทนที่จะพึ่งพาความจำของใครก็ตาม
นอกเหนือจากเซสชัน การกระทำสำคัญของแพลตฟอร์มจะถูกบันทึกไว้ใน audit log พร้อม id ของผู้ใช้ที่กระทำการ การกระทำนั้น ทรัพยากรที่ได้รับผลกระทบ และ metadata การเปลี่ยนแปลงโปรไฟล์ ธุรกรรมที่เกี่ยวข้องกับการชำระเงิน และการกระทำของผู้ดูแลระบบทั้งหมดล้วนทิ้งบันทึกไว้ บันทึกการตรวจสอบถูกเขียนโดยแพลตฟอร์มและไม่สามารถแก้ไขได้ผ่านอินเทอร์เฟซใด ๆ ที่ผู้ใช้เข้าถึงได้
การเข้ารหัสและการปกป้องข้อมูล
ปริมาณข้อมูลทั้งหมดที่เข้าและออกจากแพลตฟอร์มถูกเข้ารหัสระหว่างการส่งด้วย TLS รวมถึงสตรีมวิดีโอและสัญญาณควบคุม ในระดับข้อมูล นโยบาย row-level security จำกัดการเข้าถึงฐานข้อมูลตามบัญชี ข้อมูลการชำระเงินคือขอบเขตที่ชัดเจนที่สุดของทั้งหมด บัตรและข้อมูลธนาคารถูกจัดการโดย Stripe เท่านั้นและไม่เคยแตะต้องเซิร์ฟเวอร์ของ AY-Robots เลย
การรายงานช่องโหว่
หากคุณพบปัญหาด้านความปลอดภัย ให้รายงานอย่างมีความรับผิดชอบผ่านหน้า /security หรือแบบฟอร์ม /contact โดยใช้หมวดหมู่ Bug Report รวมข้อมูลว่าคุณพบอะไร ที่ไหน และวิธีทำซ้ำ อย่าเข้าถึงข้อมูลของผู้ใช้คนอื่นเกินกว่าขั้นต่ำที่จำเป็นในการสาธิตปัญหา และอย่าเผยแพร่รายละเอียดก่อนที่เราจะมีโอกาสอันสมควรในการแก้ไข เราอ่านทุกรายงาน
คำถามที่พบบ่อย
ผู้ควบคุมสามารถเห็นข้อมูลการเรียกเก็บเงินของฉันได้ไหม▾
ไม่ได้ การเรียกเก็บเงิน ใบแจ้งหนี้ และวิธีการชำระเงินเป็นความสามารถของบทบาทลูกค้า ผู้ควบคุมในเซสชันบนหุ่นยนต์ของคุณจะเห็นบริบทของเซสชัน ไม่ใช่บัญชีหรือข้อมูลการชำระเงินของคุณ
จะเกิดอะไรขึ้นกับหุ่นยนต์หากการเชื่อมต่อของฉันหลุดกลางเซสชัน▾
กระแสคำสั่งจะหยุดพร้อมกับการเชื่อมต่อ และกลไกป้องกันความไม่เคลื่อนไหวจะเข้ามาทำงานต่อ หลังจากช่วงเวลาคำเตือนที่ไม่มีอินพุต เซสชันจะหยุดโดยอัตโนมัติ ลูกค้าจะไม่ถูกเรียกเก็บเงินสำหรับช่วงว่างเปล่าที่เกินจุดหยุดนั้น
ฉันจะหมุนเวียน API key อย่างปลอดภัยได้อย่างไร▾
สร้างคีย์ใหม่ที่ /dashboard/settings เปลี่ยนการเชื่อมต่อของคุณไปใช้คีย์นั้น ยืนยันว่ามันทำงานได้ แล้วจึงเพิกถอนคีย์เก่า การทำตามลำดับนี้หมายความว่าไม่มีการหยุดชะงักและไม่มีช่วงเวลาใดที่ไม่มีคีย์ที่ถูกต้องอยู่เลย
ข้อมูลการชำระเงินของฉันถูกจัดเก็บบนเซิร์ฟเวอร์ของ AY-Robots ไหม▾
ไม่ บัตรและข้อมูลธนาคารไปที่ Stripe โดยตรง แพลตฟอร์มจัดเก็บเพียงการอ้างอิงไปยังอ็อบเจกต์ของ Stripe เท่านั้น ไม่เคยเป็นข้อมูลการชำระเงินต้นฉบับ
เอกสารอ้างอิง REST API สำหรับ AY-Robots: การยืนยันตัวตนด้วย session token และ API key พร้อมทุก endpoint สำหรับหุ่นยนต์ เซสชัน การชำระเงิน และข้อมูลสาธารณะ
คำตอบสำหรับคำถามที่พบบ่อยเกี่ยวกับ AY-Robots: ราคา หุ่นยนต์ที่รองรับ การเป็นผู้ควบคุม ความเป็นเจ้าของข้อมูล การจ่ายเงิน การฝึก policy และความปลอดภัย