กฎความปลอดภัยของ Firebase

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

กฎความปลอดภัยของ Firebase อยู่ระหว่างข้อมูลของคุณกับผู้ใช้ที่เป็นอันตราย คุณสามารถเขียนกฎง่ายๆ หรือซับซ้อนที่ปกป้องข้อมูลแอปของคุณจนถึงระดับรายละเอียดที่แอปเฉพาะของคุณต้องการ

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

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

ความสามารถที่สำคัญ

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

พวกเขาทำงานอย่างไร?

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

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

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

สำหรับฐานข้อมูลเรียลไทม์ กฎที่ใช้ JSON จะใช้ไวยากรณ์ต่อไปนี้:

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

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

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

เส้นทางการนำไปปฏิบัติ

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

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