เดิมที การรักษาความปลอดภัยเป็นหนึ่งในส่วนที่ซับซ้อนที่สุดของการพัฒนาแอป ในแอปพลิเคชันส่วนใหญ่ นักพัฒนาแอปต้องสร้างและเรียกใช้เซิร์ฟเวอร์ที่จัดการการตรวจสอบสิทธิ์ (ผู้ใช้เป็นใคร) และการให้สิทธิ์ (สิ่งที่ผู้ใช้ทําได้) การตรวจสอบสิทธิ์และการให้สิทธิ์นั้นตั้งค่าได้ยาก ดำเนินการให้ถูกต้องได้ยากกว่า และมีความสำคัญต่อความสำเร็จของผลิตภัณฑ์
เช่นเดียวกับที่ 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 /{allPaths=**} { allow read, write: if request.auth != null; } } }
คุณแก้ไขกฎเหล่านี้ได้โดยเลือกแอป Firebase ในคอนโซล Firebase และดูแท็บ Rules
ของส่วนพื้นที่เก็บข้อมูล
การตรวจสอบข้อมูล
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
ดูข้อมูลเพิ่มเติมเกี่ยวกับการรักษาความปลอดภัยให้ข้อมูลโดยใช้กฎการรักษาความปลอดภัย