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