Firebase Security Rules

ใช้กฎการรักษาความปลอดภัยของ Firebase ที่ยืดหยุ่นและขยายได้เพื่อ รักษาความปลอดภัยของข้อมูลใน Cloud Firestore, Firebase Realtime Database และ Cloud Storage

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

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

ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีตั้งค่า Security Rules สำหรับผลิตภัณฑ์ Firebase ที่เฉพาะเจาะจง ที่คุณใช้ในแอป และวิธีที่ลักษณะการทำงานของ Security Rules แตกต่างกันในผลิตภัณฑ์ Firebase

เริ่มต้นใช้งาน

ความสามารถหลัก

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

วิธีการทำงาน

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

สำหรับ Cloud Firestore และ Cloud Storage Security Rules ให้ใช้ไวยากรณ์ต่อไปนี้

service <<name>> {
  // Match the resource path.
  match <<path>> {
    // Allow the request if the following conditions are true.
    allow <<methods>> : if <<condition>>
  }
}

สำหรับ Realtime Database, Security Rules ที่อิงตาม JSON ให้ใช้ไวยากรณ์ต่อไปนี้

{
  "rules": {
    "<<path>>": {
    // Allow the request if the condition for each method is true.
      ".read": <<condition>>,
      ".write": <<condition>>
    }
  }
}

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

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

เส้นทางการติดตั้งใช้งาน

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

ขั้นตอนถัดไป