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