เริ่มต้นใช้งานกฎการรักษาความปลอดภัยของ Firebase

กฎการรักษาความปลอดภัยของ Firebase ให้การปกป้องที่มีประสิทธิภาพและปรับแต่งได้อย่างเต็มที่สำหรับข้อมูลของคุณใน Cloud Firestore, Realtime Database และ Cloud Storage คุณเริ่มต้นใช้งาน Rules ได้โดยทำตามขั้นตอนในคู่มือนี้ ซึ่งจะช่วยรักษาความปลอดภัยให้ข้อมูลและปกป้องแอปจากผู้ใช้ที่เป็นอันตราย

ทำความเข้าใจภาษาของกฎการรักษาความปลอดภัยของ Firebase

ก่อนเริ่มเขียนกฎ คุณควรใช้เวลาสักครู่เพื่ออ่านภาษาของกฎการรักษาความปลอดภัยของ Firebase สำหรับผลิตภัณฑ์ Firebase ที่คุณใช้ Realtime Databaseใช้ประโยชน์จากไวยากรณ์และโครงสร้าง JSON ที่คล้ายกับ JavaScript สำหรับ Rules

เริ่มต้นด้วยการเรียนรู้ไวยากรณ์หลักของภาษากฎการรักษาความปลอดภัยของ Firebase

ตั้งค่า Authentication

หากยังไม่ได้ดำเนินการ ให้เพิ่ม Firebase Authentication ลงในแอป Firebase Authentication รองรับวิธีการตรวจสอบสิทธิ์ทั่วไปหลายวิธีและผสานรวมกับกฎความปลอดภัยของ Firebase เพื่อให้สามารถยืนยันได้อย่างครอบคลุม

คุณสามารถตั้งค่าข้อมูลการตรวจสอบสิทธิ์ที่กำหนดเองเพิ่มเติมสำหรับแอปได้

ดูข้อมูลเพิ่มเติมเกี่ยวกับกฎการรักษาความปลอดภัยของ Firebase และ Firebase Authentication

กําหนดโครงสร้างข้อมูลและกฎ

กําหนดข้อมูลเพื่อความปลอดภัย

การจัดโครงสร้างข้อมูลอาจส่งผลต่อวิธีจัดโครงสร้างและใช้งานกฎ เมื่อกำหนดโครงสร้างข้อมูล ให้พิจารณาถึงผลกระทบที่โครงสร้างข้อมูลอาจมีต่อโครงสร้าง Rules

เช่น ใน Realtime Database คุณอาจต้องการใส่ช่องที่ระบุบทบาทที่เฉพาะเจาะจงสำหรับผู้ใช้แต่ละราย จากนั้นกฎจะอ่านช่องนั้นและใช้เพื่อมอบสิทธิ์เข้าถึงตามบทบาทได้

เมื่อกำหนดสถาปัตยกรรมข้อมูลและกฎ ให้คำนึงถึงวิธีที่กฎจะทยอยมีผลหรือไม่ได้ทยอยมีผล ทั้งนี้ขึ้นอยู่กับผลิตภัณฑ์ เมื่อใช้ Realtime Database ระบบจะทํางานตามลําดับจากบนลงล่าง โดยกฎที่ตื้นกว่าจะลบล้างกฎที่ลึกกว่า หากกฎให้สิทธิ์อ่านหรือเขียนในเส้นทางหนึ่งๆ ก็จะให้สิทธิ์เข้าถึงโหนดย่อยทั้งหมดที่อยู่ภายใต้กฎนั้นด้วย ในทางตรงกันข้าม Cloud Firestore และ Cloud Storage จะใช้กฎเฉพาะในระดับที่ระบุของลําดับชั้นข้อมูลเท่านั้น และคุณต้องเขียนกฎที่ชัดเจนเพื่อควบคุมการเข้าถึงระดับต่างๆ

เข้าถึงกฎ

หากต้องการดู Rules ที่มีอยู่ ให้ใช้ Firebase CLI หรือคอนโซล Firebase ตรวจสอบว่าคุณแก้ไขกฎโดยใช้วิธีการเดียวกันอย่างสม่ำเสมอเพื่อหลีกเลี่ยงการเขียนทับการอัปเดตโดยไม่ได้ตั้งใจ หากไม่แน่ใจว่ากฎที่กําหนดในเครื่องเป็นเวอร์ชันล่าสุดหรือไม่ คอนโซล Firebase จะแสดงกฎการรักษาความปลอดภัย Firebase เวอร์ชันที่ติดตั้งใช้งานล่าสุดเสมอ

หากต้องการเข้าถึงกฎจากคอนโซล Firebase ให้เลือกโปรเจ็กต์ แล้วคลิกฐานข้อมูลเรียลไทม์ในแผงการนำทางด้านซ้าย คลิก Rules เมื่อคุณอยู่ในฐานข้อมูลหรือที่เก็บข้อมูลบัケットที่ถูกต้อง

หากต้องการเข้าถึงกฎจาก Firebase CLI ให้ไปที่ไฟล์กฎที่ระบุไว้ในไฟล์ firebase.json

เขียนกฎพื้นฐาน

ขณะพัฒนาแอปและทำความเข้าใจ Rules ให้ลองใช้ Rules เพื่อจัดการกับUse Case พื้นฐาน 2-3 รายการต่อไปนี้

  • เจ้าของเนื้อหาเท่านั้น: จำกัดการเข้าถึงเนื้อหาโดยผู้ใช้
  • การเข้าถึงแบบผสม: จำกัดสิทธิ์การเขียนตามผู้ใช้ แต่อนุญาตให้ผู้ใช้สาธารณะมีสิทธิ์อ่าน
  • การเข้าถึงตามแอตทริบิวต์: จำกัดการเข้าถึงกลุ่มหรือผู้ใช้บางประเภท

ทดสอบกฎ

หากตั้งค่ากฎความปลอดภัย Firebase ในFirebaseคอนโซล คุณสามารถใช้ที่เล่นกฎ Firebase เพื่อตรวจสอบลักษณะการทํางานได้อย่างรวดเร็ว อย่างไรก็ตาม เราขอแนะนำให้ทดสอบอย่างละเอียดมากขึ้นด้วย Local Emulator Suite ก่อนที่จะทําการเปลี่ยนแปลงในเวอร์ชันที่ใช้งานจริง

ใช้งานกฎ

ใช้คอนโซล Firebase หรือ Firebase CLI เพื่อทำให้กฎใช้งานได้จริง ทำตามขั้นตอนที่ระบุไว้ในหัวข้อจัดการและทำให้กฎการรักษาความปลอดภัยของ Firebase ใช้งานได้