กฎการรักษาความปลอดภัยของ Firebase ช่วยปกป้องข้อมูลใน Cloud Firestore, Realtime Database, และ Cloud Storage อย่างมีประสิทธิภาพและปรับแต่งได้อย่างเต็มที่ คุณเริ่มต้นใช้งาน Security Rulesได้อย่างง่ายดายโดยทำตามขั้นตอนในคู่มือนี้ ซึ่งจะช่วยรักษาความปลอดภัยให้ข้อมูล และปกป้องแอปจากผู้ใช้ที่มีเจตนาร้าย
ทำความเข้าใจภาษาของกฎการรักษาความปลอดภัยของ Firebase
ก่อนที่จะเริ่มเขียนกฎ คุณควรใช้เวลาสักครู่เพื่อตรวจสอบภาษาเฉพาะของกฎการรักษาความปลอดภัยของ Firebase สำหรับผลิตภัณฑ์ Firebase ที่คุณใช้ Realtime Database ใช้ไวยากรณ์ที่คล้ายกับ JavaScript และโครงสร้าง JSON สำหรับ Security Rules
เริ่มต้นด้วยการเรียนรู้ไวยากรณ์หลักของภาษาของกฎการรักษาความปลอดภัยของ Firebase
ตั้งค่า Authentication
หากยังไม่ได้ดำเนินการ ให้เพิ่ม Firebase Authentication ลงในแอป Firebase Authentication รองรับวิธีการตรวจสอบสิทธิ์ทั่วไปมากมายและผสานรวมกับ กฎการรักษาความปลอดภัยของ Firebase เพื่อมอบความสามารถในการยืนยันที่ครอบคลุม
คุณสามารถตั้งค่าข้อมูลการตรวจสอบสิทธิ์เพิ่มเติมที่กำหนดเองสำหรับแอปได้
ดูข้อมูลเพิ่มเติมเกี่ยวกับ กฎการรักษาความปลอดภัยของ Firebase และ Firebase Authentication
กำหนดโครงสร้างข้อมูลและกฎ
กำหนดข้อมูลเพื่อความปลอดภัย
วิธีที่คุณจัดโครงสร้างข้อมูลอาจส่งผลต่อวิธีที่คุณจัดโครงสร้างและใช้กฎ เมื่อกำหนดโครงสร้างข้อมูล ให้พิจารณา ผลกระทบที่โครงสร้างข้อมูลอาจมีต่อโครงสร้างSecurity Rules
ตัวอย่างเช่น ใน Realtime Database คุณอาจต้องการรวม ฟิลด์ที่ระบุบทบาทที่เฉพาะเจาะจงสำหรับผู้ใช้แต่ละราย จากนั้นกฎจะอ่านฟิลด์ดังกล่าวและใช้เพื่อให้สิทธิ์เข้าถึงตามบทบาท
เมื่อกำหนดสถาปัตยกรรมข้อมูลและกฎ ให้คำนึงถึงวิธีที่กฎจะเรียงซ้อนหรือไม่เรียงซ้อน ทั้งนี้ขึ้นอยู่กับผลิตภัณฑ์ สำหรับ Realtime Database, กฎจะทำงานจากบนลงล่าง โดยกฎที่อยู่ระดับบนจะลบล้างกฎที่อยู่ระดับล่าง หากกฎให้สิทธิ์อ่านหรือเขียนในเส้นทางที่เฉพาะเจาะจง กฎดังกล่าวจะให้สิทธิ์เข้าถึงโหนดย่อยทั้งหมดภายใต้เส้นทางนั้นด้วย ในทางตรงกันข้าม สำหรับ Cloud Firestore และ Cloud Storage กฎจะมีผลเฉพาะในระดับที่ระบุของลำดับชั้นข้อมูล และคุณต้องเขียนกฎที่ชัดเจนเพื่อควบคุมการเข้าถึงระดับต่างๆ
เข้าถึงกฎ
หากต้องการดู Security Rules ที่มีอยู่ ให้ใช้ Firebase CLI หรือคอนโซล Firebase ตรวจสอบว่าคุณแก้ไขกฎโดยใช้วิธีเดียวกันอย่างสม่ำเสมอเพื่อหลีกเลี่ยงการเขียนทับการอัปเดตโดยไม่ได้ตั้งใจ หากไม่แน่ใจว่ากฎที่กำหนดไว้ในเครื่องของคุณแสดงการอัปเดตล่าสุดหรือไม่ คอนโซล Firebase จะแสดงกฎการรักษาความปลอดภัยของ Firebase เวอร์ชันที่ใช้งานจริงล่าสุดเสมอ
หากต้องการเข้าถึงกฎจากFirebaseคอนโซล ให้เลือก โปรเจ็กต์ แล้วคลิก Realtime Database ในแผงการนำทางด้านซ้าย คลิกSecurity Rules เมื่ออยู่ในฐานข้อมูลหรือบัคเก็ตพื้นที่เก็บข้อมูลที่ถูกต้อง
หากต้องการเข้าถึงกฎจาก Firebase CLI ให้ไปที่ ไฟล์กฎที่ระบุไว้ใน ไฟล์ firebase.json
เขียนกฎพื้นฐาน
เมื่อพัฒนาแอปและทำความเข้าใจ Security Rules ให้ลอง ใช้ Security Rules เพื่อจัดการกับ กรณีการใช้งานพื้นฐาน 2-3 กรณี ซึ่งรวมถึงกรณีต่อไปนี้
- เจ้าของเนื้อหาเท่านั้น: จำกัดการเข้าถึงเนื้อหาตามผู้ใช้
- การเข้าถึงแบบผสม: จำกัดสิทธิ์เข้าถึงการเขียนตามผู้ใช้ แต่ให้สิทธิ์เข้าถึงการอ่านแบบสาธารณะ
- การเข้าถึงตามแอตทริบิวต์: จำกัดการเข้าถึงกลุ่มหรือประเภทผู้ใช้
ทดสอบกฎ
หากคุณตั้งค่ากฎการรักษาความปลอดภัยของ Firebase ในคอนโซล Firebase คุณสามารถใช้ Firebase Rules Playground เพื่อตรวจสอบลักษณะการทำงาน ได้อย่างรวดเร็ว อย่างไรก็ตาม เราขอแนะนำให้ทดสอบอย่างละเอียดมากขึ้นด้วย Local Emulator Suiteก่อนที่จะนำ การเปลี่ยนแปลงไปใช้งานจริง
นำกฎไปใช้งานจริง
ใช้คอนโซล Firebase หรือ Firebase CLI เพื่อนำกฎ ไปใช้งานจริง ทำตามขั้นตอนที่ระบุไว้ใน จัดการและนำกฎการรักษาความปลอดภัยของ Firebase ไปใช้งานจริง