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