เริ่มต้นใช้งานกฎการรักษาความปลอดภัยของ 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 Firebase ให้เลือกโปรเจ็กต์ แล้วคลิก พื้นที่เก็บข้อมูล ในแผงการนำทางด้านซ้าย คลิกSecurity Rules เมื่ออยู่ในฐานข้อมูลหรือบัคเก็ตพื้นที่เก็บข้อมูลที่ถูกต้อง

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

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

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

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

ทดสอบกฎ

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

นำกฎไปใช้งานจริง

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