โดยทั่วไปแล้ว ความปลอดภัยเป็นส่วนที่ซับซ้อนที่สุดส่วนหนึ่งของการพัฒนาแอป ในแอปพลิเคชันส่วนใหญ่ นักพัฒนาแอปต้องสร้างและเรียกใช้เซิร์ฟเวอร์ที่จัดการการตรวจสอบสิทธิ์ (ผู้ใช้คือใคร) และการให้สิทธิ์ (ผู้ใช้ทำอะไรได้บ้าง) การตรวจสอบสิทธิ์และการให้สิทธิ์ตั้งค่าได้ยาก ทำได้ถูกต้องยากยิ่งกว่า และมีความสำคัญอย่างยิ่งต่อความสำเร็จของผลิตภัณฑ์
เช่นเดียวกับที่ Firebase Authentication ช่วยให้คุณตรวจสอบสิทธิ์ผู้ใช้ได้ง่าย Firebase Security Rules สำหรับ Cloud Storage ช่วยให้คุณให้สิทธิ์ผู้ใช้และตรวจสอบคำขอได้ง่าย Cloud Storage Security Rules จัดการความซับซ้อนให้คุณโดย อนุญาตให้คุณระบุสิทธิ์ตามเส้นทาง คุณสามารถเขียนกฎการให้สิทธิ์ที่จำกัดคำขอ Cloud Storage ให้กับผู้ใช้บางรายหรือจำกัดขนาดของการอัปโหลดได้ด้วยโค้ดเพียงไม่กี่บรรทัด
Firebase Realtime Database มีฟีเจอร์ที่คล้ายกันซึ่งเรียกว่า Firebase Realtime Database Security Rules
การตรวจสอบสิทธิ์
การทราบว่าผู้ใช้ของคุณเป็นใครเป็นส่วนสำคัญของการสร้างแอปพลิเคชัน และ
Firebase Authentication มีโซลูชันการตรวจสอบสิทธิ์ที่ใช้งานง่าย ปลอดภัย และทำงานเฉพาะฝั่งไคลเอ็นต์
Firebase Security Rules สำหรับ Cloud Storage เชื่อมโยงกับ Firebase Authentication
เพื่อความปลอดภัยตามผู้ใช้ เมื่อผู้ใช้ได้รับการตรวจสอบสิทธิ์ด้วย Firebase Authentication ตัวแปร request.auth ใน Cloud Storage Security Rules จะกลายเป็นออบเจ็กต์ที่มีรหัสที่ไม่ซ้ำกันของผู้ใช้ (request.auth.uid) และข้อมูลผู้ใช้อื่นๆ ทั้งหมดในโทเค็น (request.auth.token) เมื่อผู้ใช้ไม่ได้รับการตรวจสอบสิทธิ์ request.auth จะเป็น null ซึ่งจะช่วยให้คุณควบคุมการเข้าถึงข้อมูลได้อย่างปลอดภัยตามผู้ใช้แต่ละราย ดูข้อมูลเพิ่มเติมได้ในส่วน
การตรวจสอบสิทธิ์
การให้สิทธิ์
การระบุตัวตนของผู้ใช้เป็นเพียงส่วนหนึ่งของความปลอดภัย เมื่อทราบตัวตนของผู้ใช้แล้ว คุณ ต้องมีวิธีควบคุมการเข้าถึงไฟล์ใน Cloud Storage
Cloud Storage ช่วยให้คุณระบุกฎการให้สิทธิ์ต่อไฟล์และต่อเส้นทางที่อยู่ในเซิร์ฟเวอร์ของเราและกำหนดการเข้าถึงไฟล์ในแอปได้
ตัวอย่างเช่น Cloud Storage Security Rules เริ่มต้นกำหนดให้ต้องมีการตรวจสอบสิทธิ์ของ Firebase Authentication เพื่อดำเนินการ read หรือ write กับไฟล์ทั้งหมด:
service firebase.storage { match /b/{bucket}/o { match /someFolder/{fileName} { allow read, write: if request.auth != null; } } }
คุณสามารถแก้ไขSecurity Rulesเหล่านี้ในคอนโซลFirebaseได้โดยไปที่ แท็บฐานข้อมูลและพื้นที่เก็บข้อมูล > พื้นที่เก็บข้อมูล > กฎ
การตรวจสอบข้อมูล
Firebase Security Rules สำหรับ Cloud Storage ยังใช้สำหรับการตรวจสอบข้อมูลได้ด้วย ซึ่งรวมถึง
การตรวจสอบชื่อไฟล์และเส้นทาง รวมถึงพร็อพเพอร์ตี้ข้อมูลเมตาของไฟล์ เช่น
contentType และ size
service firebase.storage { match /b/{bucket}/o { match /images/{imageId} { // Only allow uploads of any image file that's less than 5MB allow write: if request.resource.size < 5 * 1024 * 1024 && request.resource.contentType.matches('image/.*'); } } }
ขั้นตอนถัดไป
เริ่มต้นวางแผนการพัฒนากฎ สำหรับบัคเก็ตCloud Storage
ดูข้อมูลเพิ่มเติมเกี่ยวกับ การรักษาความปลอดภัยของข้อมูล โดยใช้กฎความปลอดภัย