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 ใช้ประโยชน์จาก ภาษาที่สร้างขึ้นมาเพื่อรองรับโครงสร้างที่เจาะจงกฎที่ซับซ้อนมากขึ้น
ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีตั้งค่า Rules สำหรับผลิตภัณฑ์ Firebase ที่เฉพาะเจาะจง ที่คุณใช้ในแอปและลักษณะการทำงานของ Rules ที่ต่างกันใน Firebase Google อีกด้วย
ความสามารถที่สำคัญ
ความยืดหยุ่น | เขียนกฎที่กำหนดเองที่เหมาะกับโครงสร้างและลักษณะการทำงานของแอป Rules ใช้ภาษาที่ให้คุณใช้ประโยชน์จากข้อมูลของคุณเอง เพื่อให้สิทธิ์เข้าถึง |
แบบละเอียด | คุณสามารถกำหนดกฎให้กว้างหรือแคบได้ตามต้องการ |
การรักษาความปลอดภัยแบบอิสระ | เนื่องจากมีการกำหนด Rules ไว้นอกแอป (ในคอนโซล Firebase หรือ Firebase CLI) ไคลเอ็นต์ ไม่มีหน้าที่ในการบังคับใช้ความปลอดภัย ข้อบกพร่องจะไม่ทำให้เกิดความเสี่ยงต่อข้อมูล ข้อมูลของคุณจะได้รับการปกป้องเสมอ |
วิธีการทำงาน
Firebase Security Rules ทำงานโดยการจับคู่รูปแบบกับเส้นทางฐานข้อมูล แล้วจึงนำไปใช้ เงื่อนไขที่กำหนดเองเพื่ออนุญาตการเข้าถึงข้อมูลในเส้นทางเหล่านั้น Rulesทั้งหมด ในผลิตภัณฑ์ต่างๆ ของ Firebase จะมีคอมโพเนนต์การจับคู่เส้นทางและ ข้อความที่อนุญาตการเข้าถึงแบบอ่านหรือเขียนได้ คุณต้องกำหนด Rules สำหรับ แต่ละผลิตภัณฑ์ Firebase ที่คุณใช้ในแอป
สำหรับ Cloud Firestore และ Cloud Storage Rules ให้ใช้รายการต่อไปนี้ ไวยากรณ์:
service <<name>> {
// Match the resource path.
match <<path>> {
// Allow the request if the following conditions are true.
allow <<methods>> : if <<condition>>
}
}
สำหรับ Realtime Database Rules แบบ JSON ใช้ไวยากรณ์ต่อไปนี้
{
"rules": {
"<<path>>": {
// Allow the request if the condition for each method is true.
".read": <<condition>>,
".write": <<condition>>
}
}
}
Rules จะนำมาใช้กับคำสั่ง OR
ไม่ใช่ AND
คำสั่ง
ดังนั้น ถ้ากฎหลายข้อตรงกับเส้นทางหนึ่ง และกฎใดๆ ที่ตรงกัน
เงื่อนไขให้สิทธิ์เข้าถึง Rules ให้สิทธิ์การเข้าถึงข้อมูล
เส้นทาง ดังนั้น หากกฎทั่วไปให้สิทธิ์เข้าถึงข้อมูล คุณจะไม่สามารถจำกัดด้วย
กฎที่เจาะจงมากขึ้น อย่างไรก็ตาม คุณสามารถหลีกเลี่ยงปัญหานี้ได้ด้วยการตรวจสอบว่า
Rules ไม่ทับซ้อนกันมากเกินไป การทับซ้อนกัน Firebase Security Rules รายการใน
ที่ตรงกันเป็นคำเตือนของคอมไพเลอร์
Firebase Security Rules ยังสามารถใช้ประโยชน์จาก Authentication เพื่อให้สิทธิ์ที่อิงตามผู้ใช้ และ เงื่อนไขที่ตั้งไว้อาจเป็นเรื่องพื้นฐาน หรือซับซ้อนอย่างมาก ดูข้อมูลเพิ่มเติม ประมาณ Rules ภาษาและพฤติกรรม ก่อนที่จะเริ่มเขียน Rules
เส้นทางการใช้งาน
ผสานรวม SDK ของผลิตภัณฑ์ | ตั้งค่า Cloud Firestore Cloud Storage หรือ Realtime Database สำหรับ แอป | |
เขียนFirebase Security Rulesของคุณ | ดูข้อมูลเพิ่มเติมเกี่ยวกับ วิธีการทำงานของ Rules และ ตั้งค่า Rules พื้นฐาน | |
ทดสอบ Firebase Security Rules | ใช้โปรแกรมจำลอง Realtime Database และ Cloud Firestore เพื่อทดสอบ การทำงานและตรวจสอบกฎของคุณก่อนทำให้ใช้งานได้จริง | |
ทำให้ Firebase Security Rules ใช้งานได้ | ใช้คอนโซล Firebase หรือ CLI ของ Firebase เพื่อทำให้กฎใช้งานได้ สำหรับเวอร์ชันที่ใช้งานจริง |
ขั้นตอนถัดไป
- ทำความเข้าใจภาษาFirebase Security Rules
- ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีการทำงานของ Firebase Security Rules
- ดูข้อผิดพลาดทั่วไปที่คุณควรหลีกเลี่ยง