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

กฎการรักษาความปลอดภัยของ 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 เพื่อจัดการกรณีการใช้งานพื้นฐานบางอย่าง ซึ่งรวมถึงกรณีต่อไปนี้

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

ทดสอบกฎ

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

ทําให้กฎใช้งานได้

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