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