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

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

ทดสอบกฎ

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

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

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