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

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

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

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

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

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

ข้อจำกัด

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

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

ใช้พรอมต์

  1. ใช้ส่วนขยายเวอร์ชันทดลองGemini CLI สำหรับ Firebase Security Rules เพื่อสร้างกฎและการทดสอบ

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

    วิธีติดตั้งและใช้ส่วนขยาย

    1. ติดตั้งส่วนขยาย Gemini CLI โดยทำดังนี้

      gemini extensions install https://github.com/firebase/snippets-rules
      
    2. เปิด Gemini CLI

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

      /firebase-rules:firestore Generate rules using PROJECT ID PROJECT_ID
      

      หรือสร้างกฎสำหรับ Cloud Storage โดยทำดังนี้

      /firebase-rules:storage Generate rules using PROJECT ID PROJECT_ID and BUCKET NAME BUCKET_NAME
      

    ส่วนขยายจะสร้างไดเรกทอรี rules_test สำหรับ Cloud Firestore หรือไดเรกทอรี storage_rules_test สำหรับ Cloud Storage ในรูทของโปรเจ็กต์ ไดเรกทอรีใหม่นี้มีไฟล์ .rules ที่สร้างขึ้นพร้อมกับ โปรเจ็กต์ Node.js ที่มีการทดสอบหน่วย

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

    • การตรวจสอบไวยากรณ์ - หลังจากสร้างกฎแล้ว Gemini CLI จะตรวจสอบไวยากรณ์โดยอัตโนมัติโดยใช้คำสั่ง firebase_validate_security_rules จากเซิร์ฟเวอร์ MCP ของ Firebase
    • การทดสอบหน่วย - หลังจากตรวจสอบไวยากรณ์แล้ว Gemini CLI จะพยายามเรียกใช้ การทดสอบหน่วยที่สร้างขึ้นโดยใช้ Firebase Local Emulator Suite หากต้องการให้การทดสอบทำงาน คุณต้องเรียกใช้ Firebase Local Emulator Suite ในเทอร์มินัลแยกต่างหาก

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

    *   Instruct Gemini CLI to run tests:
        ```none
        Firebase Emulator Suite is running in a separate terminal. Please
        execute the tests.
        ```
    *   Run tests manually by following the instructions in the `README.md`
        file in the `rules_test` or `storage_rules_test` directory.
    
  3. เมื่อพอใจกับผลลัพธ์ของ Rules ที่สร้างขึ้นแล้ว ให้ใช้คำสั่ง CLI Firebase ต่อไปนี้เพื่อทำให้ Rules ใช้งานได้

    Cloud Firestore

    firebase deploy --only firestore:rules

    Cloud Storage

    firebase deploy --only storage

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

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