Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

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

ใช้กฎความปลอดภัย Firebase ที่ยืดหยุ่นและขยายได้ของเราเพื่อรักษาความปลอดภัยข้อมูลของคุณใน Cloud Firestore, ฐานข้อมูล Firebase Realtime และ 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 ของผลิตภัณฑ์ ตั้งค่า เมฆ FireStore , การจัดเก็บเมฆ หรือ เรียลไทม์ฐานข้อมูล สำหรับแอปของคุณ
เขียนกฎความปลอดภัยของ Firebase เรียนรู้เพิ่มเติมเกี่ยวกับ วิธีการทำงานของกฎ และ ตั้งค่ากฎพื้นฐานบางอย่าง
ทดสอบกฎความปลอดภัยของ Firebase ใช้ Realtime Database และโปรแกรมจำลอง Cloud Firestore เพื่อทดสอบพฤติกรรมของแอปและตรวจสอบกฎของคุณก่อนที่คุณจะปรับใช้กับการใช้งานจริง
ปรับใช้กฎความปลอดภัยของ Firebase ใช้คอนโซล Firebase หรือ Firebase CLI เพื่อทำให้กฎของคุณใช้งานได้จริง

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