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คอนโซลหรือFirebase CLI เพื่อนำกฎไปใช้ ในสภาพแวดล้อมการผลิต

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