欢迎参加我们将于 2022 年 10 月 18 日举办的 Firebase 峰会(线上线下同时进行),了解 Firebase 如何帮助您加快应用开发速度、满怀信心地发布应用并在之后需要时轻松地扩大应用规模。立即报名

ทำความเข้าใจกฎความปลอดภัยของ Firebase สำหรับ Cloud Storage

ตามเนื้อผ้า การรักษาความปลอดภัยเป็นส่วนที่ซับซ้อนที่สุดในการพัฒนาแอป ในแอปพลิเคชันส่วนใหญ่ นักพัฒนาต้องสร้างและเรียกใช้เซิร์ฟเวอร์ที่จัดการการรับรองความถูกต้อง (ผู้ใช้เป็นใคร) และการอนุญาต (สิ่งที่ผู้ใช้สามารถทำได้) การรับรองความถูกต้องและการอนุญาตนั้นยากต่อการตั้งค่า ยากที่จะทำให้ถูกต้อง และมีความสำคัญต่อความสำเร็จของผลิตภัณฑ์ของคุณ

คล้ายกับวิธีที่การตรวจสอบสิทธิ์ของ Firebase ช่วยให้คุณตรวจสอบสิทธิ์ผู้ใช้ได้ง่าย กฎความปลอดภัยของ Firebase สำหรับ Cloud Storage ช่วยให้คุณอนุญาตผู้ใช้และตรวจสอบคำขอได้ง่าย กฎความปลอดภัยของ Cloud Storage จัดการความซับซ้อนให้กับคุณโดยอนุญาตให้คุณระบุสิทธิ์ตามเส้นทาง ในโค้ดเพียงไม่กี่บรรทัด คุณสามารถเขียนกฎการให้สิทธิ์ที่จำกัดคำขอ Cloud Storage ให้กับผู้ใช้บางรายหรือจำกัดขนาดของการอัปโหลด

ฐานข้อมูลเรียลไทม์ของ Firebase มีคุณลักษณะที่คล้ายกันซึ่งเรียกว่า กฎฐานข้อมูลเรียลไทม์ของ Firebase

การตรวจสอบสิทธิ์

การรู้ว่าผู้ใช้ของคุณเป็นใครเป็นส่วนสำคัญในการสร้างแอปพลิเคชัน และการตรวจสอบสิทธิ์ของ Firebase มอบโซลูชันการตรวจสอบสิทธิ์ฝั่งไคลเอ็นต์ที่ใช้งานง่าย ปลอดภัยเท่านั้น กฎความปลอดภัยของ Firebase สำหรับ Cloud Storage เชื่อมโยงกับ Firebase Authentication เพื่อความปลอดภัยตามผู้ใช้ เมื่อผู้ใช้ได้รับการตรวจสอบสิทธิ์ด้วย Firebase Authentication ตัวแปร request.auth ใน Cloud Storage Security Rules จะกลายเป็นวัตถุที่มี ID เฉพาะของผู้ใช้ ( request.auth.uid ) และข้อมูลผู้ใช้อื่นๆ ทั้งหมดในโทเค็น ( request.auth.token ) . เมื่อผู้ใช้ไม่ได้รับการพิสูจน์ตัวตน request.auth จะเป็น null วิธีนี้ช่วยให้คุณควบคุมการเข้าถึงข้อมูลได้อย่างปลอดภัยตามแต่ละผู้ใช้ คุณสามารถเรียนรู้เพิ่มเติมได้ในส่วนการ รับรองความถูกต้อง

การอนุญาต

การระบุผู้ใช้ของคุณเป็นเพียงส่วนหนึ่งของความปลอดภัย เมื่อคุณรู้ว่าพวกเขาเป็นใคร คุณต้องมีวิธีควบคุมการเข้าถึงไฟล์ใน Cloud Storage

Cloud Storage ให้คุณระบุกฎการให้สิทธิ์ต่อไฟล์และต่อเส้นทางที่อยู่บนเซิร์ฟเวอร์ของเรา และกำหนดการเข้าถึงไฟล์ในแอปของคุณ ตัวอย่างเช่น กฎความปลอดภัยของ Cloud Storage เริ่มต้นกำหนดให้มีการตรวจสอบสิทธิ์ Firebase เพื่อดำเนินการ read หรือ write ในไฟล์ทั้งหมด:

service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read, write: if request.auth != null;
    }
  }
}

คุณแก้ไขกฎเหล่านี้ได้โดยเลือกแอป Firebase ใน คอนโซล Firebase แล้วดูแท็บ Rules ของส่วนพื้นที่เก็บข้อมูล

การตรวจสอบข้อมูล

กฎความปลอดภัยของ Firebase สำหรับ 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/.*');
    }
  }
}

ขั้นตอนถัดไป