กฎความปลอดภัยของ Firebase มอบการปกป้องที่รัดกุมและปรับแต่งได้อย่างสมบูรณ์สำหรับข้อมูลของคุณใน Cloud Firestore, Realtime Database และ Cloud Storage คุณสามารถเริ่มต้นใช้งาน Security Rules ได้อย่างง่ายดายโดยทำตามขั้นตอนในคู่มือนี้ เพื่อรักษาความปลอดภัยของข้อมูลและปกป้องแอปจากผู้ใช้ที่เป็นอันตราย
ทำความเข้าใจภาษาของกฎความปลอดภัย Firebase
ก่อนเริ่มเขียนกฎ คุณควรใช้เวลาสักครู่เพื่อตรวจสอบภาษาของกฎความปลอดภัย Firebase ที่เฉพาะเจาะจงสำหรับผลิตภัณฑ์ Firebase ที่คุณใช้ Realtime Database ใช้ไวยากรณ์ที่คล้ายกับ JavaScript และโครงสร้าง JSON สำหรับSecurity Rules
เริ่มต้นด้วยการเรียนรู้ไวยากรณ์หลักของภาษา Firebase Security Rules
ตั้งค่า Authentication
หากยังไม่ได้ดำเนินการ ให้เพิ่ม Firebase Authentication ลงในแอป Firebase Authentication รองรับวิธีการตรวจสอบสิทธิ์ทั่วไปหลายวิธีและผสานรวมกับกฎความปลอดภัยของ Firebase เพื่อให้ความสามารถในการยืนยันที่ครอบคลุม
คุณสามารถตั้งค่าข้อมูลการตรวจสอบสิทธิ์เพิ่มเติมที่กำหนดเองสำหรับแอปได้
ดูข้อมูลเพิ่มเติมเกี่ยวกับกฎความปลอดภัยของ Firebase และ Firebase Authentication
กำหนดโครงสร้างข้อมูลและกฎ
จัดโครงสร้างข้อมูลอย่างรอบคอบเพื่อให้สอดคล้องกับข้อกำหนดด้านความปลอดภัย
กำหนดข้อมูลเพื่อความปลอดภัย
วิธีจัดโครงสร้างข้อมูลอาจส่งผลต่อวิธีจัดโครงสร้างและใช้กฎ เมื่อคุณกำหนดโครงสร้างข้อมูล ให้พิจารณาถึงผลกระทบที่อาจมีต่อโครงสร้าง Security Rules
เช่น ใน Realtime Database คุณอาจต้องการรวมช่องที่ระบุบทบาทเฉพาะสำหรับผู้ใช้แต่ละราย จากนั้นกฎจะอ่านช่องดังกล่าวและใช้เพื่อมอบสิทธิ์เข้าถึงตามบทบาทได้
เมื่อคุณกำหนดสถาปัตยกรรมข้อมูลและกฎ โปรดคำนึงถึงวิธีที่กฎจะเรียงซ้อนหรือไม่เรียงซ้อน ทั้งนี้ขึ้นอยู่กับผลิตภัณฑ์ของคุณ ใน Realtime Database กฎจะทำงานจากบนลงล่าง โดยกฎที่อยู่ตื้นกว่าจะลบล้างกฎที่อยู่ลึกกว่า หากกฎให้สิทธิ์อ่านหรือเขียนในเส้นทางหนึ่งๆ กฎนั้นจะให้สิทธิ์เข้าถึงโหนดย่อยทั้งหมดภายใต้เส้นทางนั้นด้วย ในทางตรงกันข้าม Cloud Firestore และ Cloud Storage จะใช้กฎเฉพาะในระดับที่ระบุของลำดับชั้นข้อมูล และคุณจะเขียนกฎที่ชัดเจนเพื่อควบคุมการเข้าถึงระดับต่างๆ
เข้าถึงกฎ
หากต้องการดู Security Rules ที่มีอยู่ ให้ใช้ Firebase CLI หรือคอนโซล Firebase ตรวจสอบว่าคุณแก้ไขกฎโดยใช้วิธีการเดียวกันอย่างสม่ำเสมอเพื่อหลีกเลี่ยงการเขียนทับการอัปเดตโดยไม่ตั้งใจ หากไม่แน่ใจว่ากฎที่กำหนดไว้ในเครื่องแสดงการอัปเดตล่าสุดหรือไม่ คอนโซล Firebase จะแสดงเวอร์ชันที่ติดตั้งใช้งานล่าสุดของกฎความปลอดภัย Firebase เสมอ
หากต้องการเข้าถึงกฎจากคอนโซล Firebase ให้เลือกโปรเจ็กต์ แล้วคลิก Realtime Database ในแผงการนำทางด้านซ้าย คลิก Security Rules เมื่อคุณอยู่ในฐานข้อมูลหรือที่เก็บข้อมูลที่ถูกต้อง
หากต้องการเข้าถึงกฎจาก Firebase CLI ให้ไปที่ไฟล์กฎที่ระบุไว้ในไฟล์ firebase.json
เขียนกฎพื้นฐาน
ขณะพัฒนาแอปและทำความเข้าใจ Security Rules ให้ลองใช้ Security Rules เพื่อจัดการกรณีการใช้งานพื้นฐานบางอย่าง ซึ่งรวมถึงกรณีต่อไปนี้
- เฉพาะเจ้าของเนื้อหา: จำกัดการเข้าถึงเนื้อหาตามผู้ใช้
- การเข้าถึงแบบผสม: จำกัดสิทธิ์การเขียนตามผู้ใช้ แต่อนุญาตให้สาธารณะเข้าถึงแบบอ่านได้
- การเข้าถึงตามแอตทริบิวต์: จำกัดการเข้าถึงสำหรับกลุ่มหรือประเภทผู้ใช้
การทดสอบกฎ
หากคุณตั้งค่ากฎความปลอดภัยของ Firebase ในคอนโซล Firebase คุณสามารถใช้ Firebase Rules Playground เพื่อตรวจสอบลักษณะการทำงานได้อย่างรวดเร็ว อย่างไรก็ตาม เราขอแนะนำให้ทดสอบอย่างละเอียดมากขึ้นด้วย Local Emulator Suite ก่อนที่จะทำให้การเปลี่ยนแปลงใช้งานได้จริง
ติดตั้งใช้งานกฎ
ใช้คอนโซล Firebase หรือ CLI ของ Firebase เพื่อทำให้กฎใช้งานได้จริง ทำตามขั้นตอนที่ระบุไว้ในจัดการและติดตั้งใช้งานกฎความปลอดภัยของ Firebase