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

Firebase Security Rules มอบการปกป้องที่แข็งแกร่งและปรับแต่งได้อย่างเต็มที่สำหรับข้อมูลของคุณใน Cloud Firestore, Realtime Database และ Cloud Storage คุณเริ่มต้นใช้งานได้ง่ายๆ โดยSecurity 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

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

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

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

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

เข้าถึงกฎ

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

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

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

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

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

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

ทดสอบกฎ

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

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

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