พรอมต์ AI: เขียนกฎการรักษาความปลอดภัยของ Firebase

พรอมต์นี้จะช่วยให้ผู้ช่วย AI (เช่น Gemini CLI) สร้างและปรับแต่ง Firebase Security Rules สำหรับแอปของคุณได้ คุณสามารถใช้พรอมต์ เพื่อร่าง Security Rules สำหรับกรณีการใช้งานทั่วไป เช่น การให้สิทธิ์เข้าถึงเฉพาะผู้ใช้ การใช้สิทธิ์ตามบทบาท และการตรวจสอบข้อมูล

พรอมต์นี้มุ่งเน้นที่การสร้าง Security Rules สำหรับ

  • Cloud Firestore: รักษาความปลอดภัยของคอลเล็กชันและเอกสารตามตรรกะของแอป
  • Cloud Storage for Firebase: ตรวจสอบสิทธิ์การเข้าถึงไฟล์ที่จัดเก็บ

การใช้พรอมต์นี้จะช่วยให้คุณเริ่มต้นด้วยท่าทางด้านความปลอดภัยที่แข็งแกร่ง แต่คุณควรทดสอบ Security Rules อย่างละเอียดก่อนที่จะนำไปใช้งานจริงเสมอ ดูข้อมูลเพิ่มเติมเกี่ยวกับการทดสอบ Security Rules ได้ที่ เริ่มต้นใช้งาน Firebase Security Rules: ทดสอบ Security Rules

ข้อกำหนดเบื้องต้น

ข้อจำกัด

เรากำลังปรับปรุงประสบการณ์การใช้งานนี้อย่างต่อเนื่อง ดังนั้นรายการข้อจำกัดนี้อาจมีการเปลี่ยนแปลง โปรดกลับมาดูข้อมูลอัปเดตบ่อยๆ

  • พรอมต์นี้ออกแบบมาเพื่อสร้าง Firebase Security Rules สำหรับ Cloud Firestore และ Cloud Storage for Firebase แต่ยังไม่สามารถสร้างSecurity Rulesสำหรับ Firebase Realtime Database ได้

  • Firebase Security Rules จะไม่เรียกใช้เมื่อเข้าถึงฐานข้อมูลหรือที่เก็บข้อมูลจากเซิร์ฟเวอร์ หรือสภาพแวดล้อมแบ็กเอนด์อื่นๆ เช่น เมื่อใช้ Firebase Admin SDK หากคุณใช้ Admin SDK คุณมีหน้าที่รับผิดชอบในการจัดการการให้สิทธิ์ และการตรวจสอบข้อมูลในโค้ดแบ็กเอนด์

  • Gemini ใน Firebase ภายในคอนโซล Firebase ไม่สามารถสร้าง Firebase Security Rules ได้ แม้ว่าจะใช้พรอมต์นี้ก็ตาม แต่ให้ใช้ผู้ช่วย AI อื่นที่มีสิทธิ์เข้าถึงโค้ดเบสของคุณแทน เช่น Gemini CLI (ซึ่งอธิบายไว้ในหน้านี้)

ใช้พรอมต์

พรอมต์นี้พร้อมใช้งานผ่านSecurity Rulesความสามารถภายใน ส่วนขยาย Firebase สำหรับ Gemini CLI เพื่อสร้างSecurity Rulesและการทดสอบ ส่วนขยายนี้จะวิเคราะห์ซอร์สโค้ดเพื่อช่วยระบุสคีมาข้อมูลและรูปแบบการเข้าถึงสำหรับ Cloud Firestore และ Cloud Storage โดยออกแบบมาเพื่อร่าง Security Rules ตามหลักการ สิทธิ์น้อยที่สุด และพยายามค้นหาช่องโหว่ผ่านการจำลอง "การโจมตี" แบบวนซ้ำ เพื่อช่วยในการยืนยันขั้นสุดท้าย ชุดทดสอบหน่วยเริ่มต้นจะใช้ @firebase/rules-unit-testing ซึ่งช่วยให้คุณยืนยันตรรกะด้านความปลอดภัยในเครื่องได้โดยใช้ Firebase Local Emulator Suite

การใช้ส่วนขยายนี้ต้องทำ 3 ขั้นตอนตามที่อธิบายไว้ในส่วนนี้

  1. สร้างSecurity Rulesและการทดสอบ

  2. ตรวจสอบSecurity Rulesผลการตรวจสอบความถูกต้องและการทดสอบ

  3. ติดตั้งใช้งาน Security Rules ในโปรเจ็กต์ Firebase

ขั้นตอนที่ 1: สร้าง Security Rules และการทดสอบ

ติดตั้งและเรียกใช้ส่วนขยายโดยทำดังนี้

  1. ติดตั้งส่วนขยาย Firebase สำหรับ Gemini CLI ดังนี้

    gemini extensions install https://github.com/gemini-cli-extensions/firebase
  2. เริ่ม Gemini CLI:

    gemini
  3. จากรูทของโปรเจ็กต์ ให้เรียกใช้ส่วนขยายเพื่อสร้าง Security Rules สำหรับ Cloud Firestore หรือ Cloud Storage

    • สร้าง Security Rules สำหรับ Cloud Firestore

      /firestore:generate_security_rules

      ในไดเรกทอรีหลัก ส่วนขยายจะสร้างfirestore.rulesไฟล์ และไดเรกทอรี security_rules_test_firestore ใหม่ที่มี โปรเจ็กต์ Node.js พร้อมการทดสอบหน่วยสำหรับ Security Rules ที่สร้างขึ้น

    • สร้าง Security Rules สำหรับ Cloud Storage for Firebase

      /storage:generate_security_rules

      ในไดเรกทอรีหลัก ส่วนขยายจะสร้างไฟล์ storage.rules และ ไดเรกทอรี security_rules_test_storage ใหม่ที่มีโปรเจ็กต์ Node.js พร้อมการทดสอบหน่วยสำหรับ Security Rules ที่สร้างขึ้น

ขั้นตอนที่ 2: ตรวจสอบผลการตรวจสอบSecurity Rulesและความถูกต้อง

  1. ตรวจสอบว่าผู้ช่วย AI ของคุณได้ทำสิ่งต่อไปนี้ คุณควรได้รับ ข้อมูลสรุปที่สร้างขึ้นหลังจากที่ส่วนขยายทำงาน

    • การตรวจสอบไวยากรณ์: หลังจากสร้าง Security Rules แล้ว Gemini CLI จะตรวจสอบไวยากรณ์โดยอัตโนมัติโดยใช้คำสั่ง firebase_validate_security_rules จากเซิร์ฟเวอร์ Firebase MCP

    • การทดสอบหน่วย: หลังจากตรวจสอบไวยากรณ์แล้ว Gemini CLI จะพยายามเรียกใช้ การทดสอบหน่วยที่สร้างขึ้นโดยใช้ Firebase Local Emulator Suite

  2. หากการทดสอบไม่ทำงานโดยอัตโนมัติ เริ่ม Firebase Local Emulator Suite ในเทอร์มินัลแยกต่างหาก จากนั้นใช้ตัวเลือกใดตัวเลือกหนึ่งต่อไปนี้เพื่อเรียกใช้การทดสอบ

    • ตัวเลือกที่ 1: สั่งให้ Gemini CLI เรียกใช้การทดสอบ

      Firebase Emulator Suite is running in a separate terminal. Please execute the tests.
      
    • ตัวเลือกที่ 2: เรียกใช้การทดสอบด้วยตนเองโดยทำตามวิธีการในไฟล์ README.md ในไดเรกทอรี rules_test หรือ storage_rules_test

ขั้นตอนที่ 3: นำ Security Rules ไปใช้ในโปรเจ็กต์ Firebase

เมื่อพอใจกับผลลัพธ์ของ Security Rules ที่สร้างขึ้นแล้ว ให้ใช้คำสั่ง CLI ต่อไปนี้เพื่อทำให้ Security Rules ใช้งานได้ในโปรเจ็กต์ FirebaseFirebase

  • Cloud Firestore

    firebase deploy --only firestore:rules
  • Cloud Storage for Firebase

    firebase deploy --only storage

แหล่งข้อมูลเพิ่มเติม

  • หากต้องการความช่วยเหลือเพิ่มเติมเกี่ยวกับท่าทีด้านความปลอดภัย คุณยังใช้ส่วนขยายความปลอดภัยสำหรับ Gemini CLI ซึ่งเป็นส่วนขยายโอเพนซอร์สที่วิเคราะห์การเปลี่ยนแปลงโค้ดเพื่อระบุความเสี่ยงด้านความปลอดภัย และช่องโหว่ได้ด้วย