Firebase is back at Google I/O on May 10! Register now
จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ

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

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

,

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

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