Firebase Security Rules

ใช้ Firebase Security Rules ที่ยืดหยุ่นและขยายได้เพื่อ รักษาความปลอดภัยของข้อมูลใน 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 หรือ CLI Firebase) ไคลเอ็นต์ จึงไม่รับผิดชอบในการบังคับใช้ความปลอดภัย ข้อบกพร่องจึงไม่ทำให้ข้อมูลเสียหาย และ ข้อมูลของคุณจะได้รับการปกป้องอยู่เสมอ

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

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

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