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