Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

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

จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ

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

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

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

การรับรองความถูกต้อง

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

การอนุญาต

การระบุผู้ใช้ของคุณเป็นเพียงส่วนหนึ่งของความปลอดภัย เมื่อคุณรู้ว่าพวกเขาเป็นใคร คุณต้องมีวิธีควบคุมการเข้าถึงไฟล์ใน 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/.*');
    }
  }
}

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