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