ป้องกันการละเมิด Gemini API ด้วย Firebase App Check

เมื่อคุณเรียกใช้ API โดยตรงจากแอปบนอุปกรณ์เคลื่อนที่หรือเว็บแอป API จะเสี่ยงต่อการ ถูกไคลเอ็นต์ที่ไม่ได้รับอนุญาตละเมิด หากต้องการเรียกใช้ Gemini API โดยตรง จากแอปบนอุปกรณ์เคลื่อนที่หรือเว็บแอป คุณต้องช่วยปกป้องไม่ให้มีการละเมิดโดยใช้ Firebase AI Logic และ บังคับใช้ Firebase App Check เมื่อบังคับใช้ App Check ระบบจะอนุญาตเฉพาะคำขอขาเข้าที่ได้รับการยืนยันว่ามาจากแอปจริงของคุณและ/หรืออุปกรณ์ที่ไม่มีการดัดแปลง

ข้ามไปที่วิธีการตั้งค่า

Firebase AI Logic มีเกตเวย์พร็อกซีที่ช่วยให้คุณผสานรวมกับ Firebase App Check และปกป้อง Gemini API เมื่อแอปบนอุปกรณ์เคลื่อนที่และเว็บแอปเรียกใช้โดยตรง เมื่อมีการบังคับใช้ App Check กับ Firebase AI Logic จะช่วยปกป้องทั้งGemini Developer API และAgent Platform Gemini API (formerly Vertex AI)

App Check ยังรองรับFirebase AI Logic การป้องกันการเล่นซ้ำ ซึ่งหมายความว่าApp Checkโทเค็น จะใช้ได้เพียงครั้งเดียว


ข้อมูลสรุปในระดับสูงเกี่ยวกับวิธีการทำงานของ App Check

เมื่อใช้ App Check อุปกรณ์ที่เรียกใช้แอปของคุณจะใช้ผู้ให้บริการการรับรองแอปหรืออุปกรณ์ ซึ่งจะยืนยันข้อมูลต่อไปนี้อย่างใดอย่างหนึ่งหรือทั้ง 2 อย่าง

  • คำขอมาจากแอปที่ถูกต้องของคุณ
  • คำขอมาจากอุปกรณ์ของแท้ที่ไม่มีการดัดแปลง

การรับรองนี้จะแนบไปกับทุกคำขอที่แอปของคุณส่งโดยใช้ SDK Firebase AI Logic เมื่อมีการบังคับใช้ App Check ระบบจะปฏิเสธคำขอจากไคลเอ็นต์ ที่ไม่มีการรับรองที่ถูกต้อง รวมถึงคำขอที่มาจาก แอปหรือแพลตฟอร์มที่คุณไม่ได้ให้สิทธิ์

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

คุณดูข้อมูลโดยละเอียดเกี่ยวกับ App Check ได้ในเอกสารประกอบ ซึ่งรวมถึงคำอธิบายของผู้ให้บริการการรับรอง ตลอดจนโควต้าและขีดจำกัดที่เกี่ยวข้อง

ตั้งค่า App Check

วิธีการต่อไปนี้ได้รับการเพิ่มประสิทธิภาพสำหรับการตั้งค่าFirebase App Check การบังคับใช้สำหรับFirebase AI Logic

ขั้นตอนที่ 1: บังคับใช้ App Check

ตั้งแต่ช่วงต้นเดือนกรกฎาคม 2026 เป็นต้นไป ในระหว่างเวิร์กโฟลว์การตั้งค่าแบบมีคำแนะนำในFirebaseคอนโซล Firebase จะบังคับใช้ Firebase App Check โดยอัตโนมัติสำหรับ Firebase AI Logic เพื่อช่วยปกป้อง Gemini API

อย่างไรก็ตาม หากคุณได้ตั้งค่า Firebase AI Logic ในโปรเจ็กต์ Firebase ก่อนช่วงต้นเดือนกรกฎาคม 2026 (หรือApp Checkไม่ได้บังคับใช้ด้วยเหตุผลอื่น) คุณจะบังคับใช้ App Check ด้วยตนเองได้โดยใช้คำสั่งต่อไปนี้

  1. ตรวจสอบว่ามีการบังคับใช้ App Check กับ Firebase AI Logic แล้วหรือยัง

    1. ในFirebaseคอนโซล ให้ไปที่ความปลอดภัย > App Check > แท็บ API

    2. ค้นหาแถวของ Firebase AI Logic หากแสดงข้อความ Unenforced, ให้ทำตามวิธีการที่เหลือต่อไป

  2. คลิกแถวของ Firebase AI Logic แล้วคุณจะเห็นกราฟเมตริก คลิกตั้งค่าใต้กราฟเหล่านั้น

  3. ในหน้าจอแรกของกล่องโต้ตอบ (การป้องกันพื้นฐาน) ให้เลือก บังคับใช้ แล้วคลิกต่อไป

  4. ในหน้าจอถัดไป (การป้องกันการเล่นซ้ำ) ให้เลือกปิดใช้ แล้วคลิกต่อไป

  5. ในหน้าจอสุดท้าย โปรดอ่านข้อควรพิจารณาในการบังคับใช้ App Check เพื่อให้แน่ใจว่าคุณพร้อมที่จะบังคับใช้ App Check หากพร้อมแล้ว ให้คลิกดำเนินการต่อ

    คุณไม่จำเป็นต้องลงทะเบียนแอปหากต้องการบังคับใช้ App Check และใช้เฉพาะผู้ให้บริการแก้ไขข้อบกพร่องกับ Firebase AI Logic ในแอปก่อนเวอร์ชันที่ใช้งานจริง อย่างไรก็ตาม เมื่อพร้อมที่จะเผยแพร่แอปไปยัง ผู้ใช้ปลายทางแล้ว คุณจะต้องลงทะเบียนแอปเป็นส่วนหนึ่งของการตั้งค่า ผู้ให้บริการการรับรองเวอร์ชันที่ใช้งานจริง (เช่น App Attest, Play Integrity หรือ reCAPTCHA Enterprise)

ขั้นตอนที่ 2: ตั้งค่าผู้ให้บริการแก้ไขข้อบกพร่องสำหรับการพัฒนาในเครื่อง

สำหรับการพัฒนาในเครื่อง คุณสามารถตั้งค่าApp Check ผู้ให้บริการแก้ไขข้อบกพร่องและ ยังคงบังคับใช้ App Check สำหรับ Firebase AI Logic ได้

Swift

วิธีใช้ผู้ให้บริการแก้ไขข้อบกพร่องขณะเรียกใช้แอปในโปรแกรมจำลอง แบบโต้ตอบ (เช่น ระหว่างการพัฒนาในเครื่อง) มีดังนี้

  1. ในโปรเจ็กต์ Xcode ให้นำเข้า FirebaseAppCheck และเริ่มต้น App Check ด้วยโรงงานผู้ให้บริการแก้ไขข้อบกพร่องก่อนกำหนดค่า Firebase

    import SwiftUI
    import FirebaseCore
    import FirebaseAppCheck
    
    @main
    struct YourApp: App {
      init() {
        let providerFactory = AppCheckDebugProviderFactory()
        AppCheck.setAppCheckProviderFactory(providerFactory)
        FirebaseApp.configure()
      }
    
      var body: some Scene {
        WindowGroup {
          NavigationView {
            ContentView()
          }
        }
      }
    }
    
  2. รับโทเค็นการแก้ไขข้อบกพร่องโดยทำดังนี้

    1. เปิดแอปในโปรแกรมจำลองหรือบนอุปกรณ์ทดสอบ

    2. เปิดคอนโซล Xcode แล้วมองหาApp Checkโทเค็นการแก้ไขข้อบกพร่อง เช่น

      <Warning> [AppCheckCore][I-GAC004001] App Check debug token: '123a4567-b89c-12d3-e456-789012345678'.
      
    3. คัดลอกโทเค็น (เช่น 123a4567-b89c-12d3-e456-789012345678)

  3. ลงทะเบียนโทเค็นการแก้ไขข้อบกพร่องกับ App Check โดยทำดังนี้

    1. ในFirebase คอนโซล ให้ไปที่ ความปลอดภัย > App Check > แท็บแอป

    2. ค้นหาแอปของคุณ คลิกเมนูรายการเพิ่มเติม () แล้วเลือก จัดการโทเค็นการแก้ไขข้อบกพร่อง

    3. ทำตามวิธีการบนหน้าจอเพื่อลงทะเบียนโทเค็นการแก้ไขข้อบกพร่อง

ดูรายละเอียดเกี่ยวกับผู้ให้บริการแก้ไขข้อบกพร่อง (รวมถึงวิธีรับโทเค็นการแก้ไขข้อบกพร่องใหม่) ได้ที่เอกสารอย่างเป็นทางการของ App Check

Kotlin

วิธีใช้ผู้ให้บริการแก้ไขข้อบกพร่องขณะเรียกใช้แอปในโปรแกรมจำลองแบบ โต้ตอบ (เช่น ระหว่างการพัฒนาในเครื่อง) มีดังนี้

  1. ในการสร้างการแก้ไขข้อบกพร่อง ให้กำหนดค่า App Check เพื่อใช้โรงงานผู้ให้บริการแก้ไขข้อบกพร่อง ดังนี้

    Firebase.initialize(context = this)
    Firebase.appCheck.installAppCheckProviderFactory(
        DebugAppCheckProviderFactory.getInstance(),
    )
  2. รับโทเค็นการแก้ไขข้อบกพร่องโดยทำดังนี้

    1. เรียกใช้แอปในโปรแกรมจำลองหรือบนอุปกรณ์ทดสอบ

    2. มองหาApp Checkโทเค็นการแก้ไขข้อบกพร่องในบันทึก เช่น

      D DebugAppCheckProvider: Enter this debug secret into the allow list
      in the Firebase Console for your project: 123a4567-b89c-12d3-e456-789012345678
      
    3. คัดลอกโทเค็น (เช่น 123a4567-b89c-12d3-e456-789012345678)

  3. ลงทะเบียนโทเค็นการแก้ไขข้อบกพร่องกับ App Check โดยทำดังนี้

    1. ในFirebase คอนโซล ให้ไปที่ ความปลอดภัย > App Check > แท็บแอป

    2. ค้นหาแอปของคุณ คลิกเมนูรายการเพิ่มเติม () แล้วเลือก จัดการโทเค็นการแก้ไขข้อบกพร่อง

    3. ทำตามวิธีการบนหน้าจอเพื่อลงทะเบียนโทเค็นการแก้ไขข้อบกพร่อง

ดูรายละเอียดเกี่ยวกับผู้ให้บริการแก้ไขข้อบกพร่อง (รวมถึงวิธีรับโทเค็นการแก้ไขข้อบกพร่องใหม่) ได้ที่เอกสารอย่างเป็นทางการของ App Check

Java

วิธีใช้ผู้ให้บริการแก้ไขข้อบกพร่องขณะเรียกใช้แอปในโปรแกรมจำลอง แบบโต้ตอบ (เช่น ระหว่างการพัฒนาในเครื่อง) มีดังนี้

  1. ในการสร้างการแก้ไขข้อบกพร่อง ให้กำหนดค่า App Check เพื่อใช้โรงงานผู้ให้บริการแก้ไขข้อบกพร่อง ดังนี้

    FirebaseApp.initializeApp(/*context=*/ this);
    FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance();
    firebaseAppCheck.installAppCheckProviderFactory(
            DebugAppCheckProviderFactory.getInstance());
  2. รับโทเค็นการแก้ไขข้อบกพร่องโดยทำดังนี้

    1. เรียกใช้แอปในโปรแกรมจำลองหรือบนอุปกรณ์ทดสอบ

    2. มองหาApp Checkโทเค็นการแก้ไขข้อบกพร่องในบันทึก เช่น

      D DebugAppCheckProvider: Enter this debug secret into the allow list
      in the Firebase Console for your project: 123a4567-b89c-12d3-e456-789012345678
      
    3. คัดลอกโทเค็น (เช่น 123a4567-b89c-12d3-e456-789012345678)

  3. ลงทะเบียนโทเค็นการแก้ไขข้อบกพร่องกับ App Check โดยทำดังนี้

    1. ในFirebase คอนโซล ให้ไปที่ ความปลอดภัย > App Check > แท็บแอป

    2. ค้นหาแอปของคุณ คลิกเมนูรายการเพิ่มเติม () แล้วเลือก จัดการโทเค็นการแก้ไขข้อบกพร่อง

    3. ทำตามวิธีการบนหน้าจอเพื่อลงทะเบียนโทเค็นการแก้ไขข้อบกพร่อง

ดูรายละเอียดเกี่ยวกับผู้ให้บริการแก้ไขข้อบกพร่อง (รวมถึงวิธีรับโทเค็นการแก้ไขข้อบกพร่องใหม่) ได้ที่เอกสารอย่างเป็นทางการของ App Check

Web

วิธีใช้ผู้ให้บริการแก้ไขข้อบกพร่องขณะเรียกใช้แอปจาก localhost แบบอินเทอร์แอกทีฟ (เช่น ระหว่างการพัฒนาในเครื่อง) มีดังนี้

  1. ในบิลด์การแก้ไขข้อบกพร่อง ให้เปิดใช้โหมดแก้ไขข้อบกพร่องโดยตั้งค่า self.FIREBASE_APPCHECK_DEBUG_TOKEN เป็น true ก่อนที่จะเริ่มต้น App Check เช่น

    self.FIREBASE_APPCHECK_DEBUG_TOKEN = true;
    initializeAppCheck(app, { /* App Check options */ });
    
  2. ไปที่เว็บแอปในเครื่องและเปิดเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ของเบราว์เซอร์ คุณจะเห็นโทเค็นการแก้ไขข้อบกพร่องใน คอนโซลดีบัก

    AppCheck debug token: "123a4567-b89c-12d3-e456-789012345678".
    You will need to safelist it in the Firebase console for it to work.
    
  3. ลงทะเบียนโทเค็นการแก้ไขข้อบกพร่องกับ App Check โดยทำดังนี้

    1. ในFirebase คอนโซล ให้ไปที่ ความปลอดภัย > App Check > แท็บแอป

    2. ค้นหาแอปของคุณ คลิกเมนูรายการเพิ่มเติม () แล้วเลือก จัดการโทเค็นการแก้ไขข้อบกพร่อง

    3. ทำตามวิธีการบนหน้าจอเพื่อลงทะเบียนโทเค็นการแก้ไขข้อบกพร่อง

ดูรายละเอียดเกี่ยวกับผู้ให้บริการแก้ไขข้อบกพร่อง (รวมถึงวิธีรับโทเค็นการแก้ไขข้อบกพร่องใหม่) ได้ที่เอกสารอย่างเป็นทางการของ App Check

Dart

iOS+

วิธีใช้ผู้ให้บริการแก้ไขข้อบกพร่องขณะเรียกใช้แอปในโปรแกรมจำลอง แบบโต้ตอบ (เช่น ระหว่างการพัฒนาในเครื่อง) มีดังนี้

  1. เปิดใช้งาน App Check ด้วยผู้ให้บริการแก้ไขข้อบกพร่องทันทีหลังจากที่คุณ เริ่มต้นแอป Firebase แล้ว

    import 'package:flutter/material.dart';
    import 'package:firebase_core/firebase_core.dart';
    
    // Import the firebase_app_check plugin
    import 'package:firebase_app_check/firebase_app_check.dart';
    
    Future<void> main() async {
      WidgetsFlutterBinding.ensureInitialized();
      await Firebase.initializeApp();
      await FirebaseAppCheck.instance.activate(
        // Set appleProvider to `AppleProvider.debug`
        appleProvider: AppleProvider.debug,
      );
      runApp(App());
    }
    
  2. เปิดใช้การบันทึกการแก้ไขข้อบกพร่องในโปรเจ็กต์ Xcode โดยทำดังนี้

    1. เปิดผลิตภัณฑ์ > รูปแบบ > แก้ไขรูปแบบ
    2. เลือกเรียกใช้จากเมนูด้านซ้าย แล้วเลือกแท็บอาร์กิวเมนต์
    3. ในส่วนอาร์กิวเมนต์ที่ส่งเมื่อตอนเริ่ม ให้เพิ่ม -FIRDebugEnabled
  3. รับโทเค็นการแก้ไขข้อบกพร่องโดยทำดังนี้

    1. เปิด ios/Runner.xcworkspace ด้วย Xcode แล้วเรียกใช้แอปใน โปรแกรมจำลองหรือในอุปกรณ์ทดสอบ

    2. เปิดคอนโซล Xcode แล้วมองหาApp Checkโทเค็นการแก้ไขข้อบกพร่อง เช่น

      <Warning> [AppCheckCore][I-GAC004001] App Check debug token: '123a4567-b89c-12d3-e456-789012345678'.
      
    3. คัดลอกโทเค็น (เช่น 123a4567-b89c-12d3-e456-789012345678)

  4. ลงทะเบียนโทเค็นการแก้ไขข้อบกพร่องกับ App Check โดยทำดังนี้

    1. ในFirebase คอนโซล ให้ไปที่ ความปลอดภัย > App Check > แท็บแอป

    2. ค้นหาแอปของคุณ คลิกเมนูรายการเพิ่มเติม () แล้วเลือก จัดการโทเค็นการแก้ไขข้อบกพร่อง

    3. ทำตามวิธีการบนหน้าจอเพื่อลงทะเบียนโทเค็นการแก้ไขข้อบกพร่อง

Android

วิธีใช้ผู้ให้บริการแก้ไขข้อบกพร่องขณะเรียกใช้แอปในโปรแกรมจำลองแบบ โต้ตอบ (เช่น ระหว่างการพัฒนาในเครื่อง) มีดังนี้

  1. เปิดใช้งาน App Check ด้วยผู้ให้บริการแก้ไขข้อบกพร่องทันทีหลังจากที่คุณ เริ่มต้นแอป Firebase แล้ว

    import 'package:flutter/material.dart';
    import 'package:firebase_core/firebase_core.dart';
    
    // Import the firebase_app_check plugin
    import 'package:firebase_app_check/firebase_app_check.dart';
    
    Future<void> main() async {
      WidgetsFlutterBinding.ensureInitialized();
      await Firebase.initializeApp();
      await FirebaseAppCheck.instance.activate(
        // Set androidProvider to `AndroidProvider.debug`
        androidProvider: AndroidProvider.debug,
      );
      runApp(App());
    }
    
  2. รับโทเค็นการแก้ไขข้อบกพร่องโดยทำดังนี้

    1. เรียกใช้แอปในโปรแกรมจำลองหรือบนอุปกรณ์ทดสอบ

    2. มองหาApp Checkโทเค็นการแก้ไขข้อบกพร่องในบันทึก เช่น

      D DebugAppCheckProvider: Enter this debug secret into the allow list
      in the Firebase Console for your project: 123a4567-b89c-12d3-e456-789012345678
      
    3. คัดลอกโทเค็น (เช่น 123a4567-b89c-12d3-e456-789012345678)

  3. ลงทะเบียนโทเค็นการแก้ไขข้อบกพร่องกับ App Check โดยทำดังนี้

    1. ในFirebase คอนโซล ให้ไปที่ ความปลอดภัย > App Check > แท็บแอป

    2. ค้นหาแอปของคุณ คลิกเมนูรายการเพิ่มเติม () แล้วเลือก จัดการโทเค็นการแก้ไขข้อบกพร่อง

    3. ทำตามวิธีการบนหน้าจอเพื่อลงทะเบียนโทเค็นการแก้ไขข้อบกพร่อง

เว็บ

วิธีใช้ผู้ให้บริการแก้ไขข้อบกพร่องขณะเรียกใช้แอปจาก localhostแบบอินเทอร์แอกทีฟ (เช่น ระหว่างการพัฒนาในเครื่อง) มีดังนี้

  1. ในไฟล์ web/index.html ให้เปิดใช้โหมดแก้ไขข้อบกพร่องโดยตั้งค่า self.FIREBASE_APPCHECK_DEBUG_TOKEN เป็น true ดังนี้

    <body>
      <script>
        self.FIREBASE_APPCHECK_DEBUG_TOKEN = true;
      </script>
    
      ...
    
    </body>
    
  2. เรียกใช้เว็บแอปในเครื่องและเปิดเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ของเบราว์เซอร์ ใน คอนโซลดีบัก คุณจะเห็นโทเค็นการแก้ไขข้อบกพร่อง

    AppCheck debug token: "123a4567-b89c-12d3-e456-789012345678".
    You will need to safelist it in the Firebase console for it to work.
    

    โทเค็นนี้จะจัดเก็บไว้ในเบราว์เซอร์ของคุณภายในเครื่อง และจะใช้ทุกครั้งที่คุณใช้แอปในเบราว์เซอร์เดียวกันบนเครื่องเดียวกัน หากต้องการใช้โทเค็นในเบราว์เซอร์อื่นหรือในเครื่องอื่น ให้ตั้งค่า self.FIREBASE_APPCHECK_DEBUG_TOKEN เป็นสตริงโทเค็นแทน true

  3. ลงทะเบียนโทเค็นการแก้ไขข้อบกพร่องกับ App Check โดยทำดังนี้

    1. ในFirebase คอนโซล ให้ไปที่ ความปลอดภัย > App Check > แท็บแอป

    2. ค้นหาแอปของคุณ คลิกเมนูรายการเพิ่มเติม () แล้วเลือก จัดการโทเค็นการแก้ไขข้อบกพร่อง

    3. ทำตามวิธีการบนหน้าจอเพื่อลงทะเบียนโทเค็นการแก้ไขข้อบกพร่อง

ดูรายละเอียดเกี่ยวกับผู้ให้บริการแก้ไขข้อบกพร่อง (รวมถึงวิธีรับโทเค็นการแก้ไขข้อบกพร่องใหม่) ได้ที่เอกสารอย่างเป็นทางการของ App Check

Unity

วิธีใช้ผู้ให้บริการแก้ไขข้อบกพร่องขณะเรียกใช้แอปในโปรแกรมจำลองแบบ โต้ตอบ (เช่น ระหว่างการพัฒนาในเครื่อง) มีดังนี้

  1. ในFirebaseคอนโซล ให้สร้างโทเค็นการแก้ไขข้อบกพร่องโดยทำดังนี้

    1. ในFirebaseคอนโซล ให้ไปที่ความปลอดภัย > App Check > แท็บแอป

    2. ค้นหาแอปของคุณ คลิกเมนูรายการเพิ่มเติม () แล้วเลือก จัดการโทเค็นการแก้ไขข้อบกพร่อง

    3. ทำตามวิธีการบนหน้าจอเพื่อสร้างโทเค็นการแก้ไขข้อบกพร่องใหม่

  2. เพิ่มโค้ดต่อไปนี้ในโค้ดการเริ่มต้นของแอป

    using Firebase.AppCheck;
    
    void InitializeFirebase() {
      // Configure the Debug Provider factory with your debug token.
      DebugAppCheckProviderFactory.Instance.SetDebugToken("YOUR_DEBUG_TOKEN");
    
      // Set App Check to use the debug provider factory
      FirebaseAppCheck.SetAppCheckProviderFactory(
        DebugAppCheckProviderFactory.Instance);
    
      // Proceed to initialize Firebase as normal
    }
    

ดูรายละเอียดเกี่ยวกับผู้ให้บริการแก้ไขข้อบกพร่อง (รวมถึงวิธีรับโทเค็นการแก้ไขข้อบกพร่องใหม่) ได้ที่เอกสารอย่างเป็นทางการของ App Check

ขั้นตอนที่ 3: ตั้งค่า App Check สำหรับผู้ใช้ปลายทางและการใช้งานจริง

เมื่อพร้อมที่จะเผยแพร่แอปต่อผู้ใช้ปลายทาง คุณจะต้องลงทะเบียนแอปและตั้งค่าผู้ให้บริการการรับรองเวอร์ชันที่ใช้งานจริง (เช่น App Attest, Play Integrity หรือ reCAPTCHA Enterprise)

  1. เลือกผู้ให้บริการการรับรองการใช้งานจริง แล้วทําตามวิธีการติดตั้งใช้งาน ที่ลิงก์ต่อไปนี้

    โปรดทราบว่าหากผู้ให้บริการการรับรองเหล่านี้ไม่เพียงพอต่อความต้องการของคุณ คุณสามารถใช้ผู้ให้บริการที่กำหนดเองซึ่งใช้ผู้ให้บริการการรับรองบุคคลที่สามหรือเทคนิคการรับรองของคุณเอง

  2. (แนะนำ) เพิ่มการปกป้องโดยเพิ่มการป้องกันการเล่นซ้ำ ซึ่งหมายความว่าใช้โทเค็น App Check ได้เพียงครั้งเดียว

เพิ่มการป้องกันโดยเพิ่มการป้องกันการเล่นซ้ำ

เราขอแนะนำให้ใช้ SDK เวอร์ชันล่าสุด แต่โปรดตรวจสอบว่าคุณใช้เวอร์ชันใดเวอร์ชันหนึ่งต่อไปนี้เป็นอย่างน้อยเพื่อใช้การป้องกันการเล่นซ้ำ
แพลตฟอร์ม Apple v12.2.0 ขึ้นไป | Android BoM v34.14.0 ขึ้นไป (App Check v19.1.0 ขึ้นไป) | Web v12.14.0 ขึ้นไป | Flutter v4.15.0 ขึ้นไป (App Check v4.10.0 ขึ้นไป) | Unity v13.12.0 ขึ้นไป

โดยค่าเริ่มต้น App Check จะใช้โทเค็นเซสชันซึ่งมี Time to Live (TTL) ที่กำหนดค่าได้ระหว่าง 30 นาทีถึง 7 วัน App Check SDK จะแคชโทเค็นเซสชันเหล่านี้ ส่งพร้อมกับ คำขอจากแอป และนำกลับมาใช้ใหม่ได้จนกว่า TTL จะหมดอายุ การใช้โทเค็นเซสชันถือเป็นการป้องกันพื้นฐาน

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

  • App Check จะบล็อกคำขอไปยัง Firebase AI Logic ที่ใช้ โทเค็นเซสชัน แต่ App Check จะอนุญาตคำขอไปยัง Firebase AI Logic ก็ต่อเมื่อใช้โทเค็นที่จำกัดการใช้ซึ่งสร้างขึ้นใหม่

  • หลังจากยืนยันโทเค็นที่จำกัดการใช้แล้ว ระบบจะใช้โทเค็นดังกล่าวเพื่อให้ใช้ได้เพียงครั้งเดียว ซึ่งจะช่วยป้องกันการโจมตีแบบใช้โทเค็นซ้ำ (Replay)

  • App Check SDK จะสร้างโทเค็นแบบจำกัดการใช้งานใหม่สำหรับคำขอแต่ละคำขอ โปรดทราบว่ากระบวนการนี้อาจส่งผลต่อคำขอของคุณโดยการเพิ่มเวลาในการตอบสนองและ บางครั้งอาจมีค่าใช้จ่าย (ขึ้นอยู่กับผู้ให้บริการการรับรอง)

ตั้งค่าและบังคับใช้การป้องกันการเล่นซ้ำ

คลิกผู้ให้บริการ Gemini API เพื่อดูเนื้อหาและโค้ดเฉพาะของผู้ให้บริการ ในหน้านี้

วิธีตั้งค่าและบังคับใช้การป้องกันการเล่นซ้ำมีดังนี้

  1. หากยังไม่ได้ตั้งค่า ให้ตั้งค่า App Check โดยทำตามวิธีการก่อนหน้าในหน้านี้

  2. เปิดใช้โทเค็นที่จำกัดการใช้

    ในแอปของคุณระหว่างการเริ่มต้น ให้ตั้งค่าพารามิเตอร์ useLimitedUseAppCheckTokens เป็น true

    Swift

    
    // ...
    
    // During instantiation, enable usage of limited-use tokens.
    let ai = FirebaseAI.firebaseAI(
      backend: .googleAI(),
      useLimitedUseAppCheckTokens: true
    )
    
    // ...
    
    

    Kotlin

    
    // ...
    
    // During instantiation, enable usage of limited-use tokens.
    val ai = Firebase.ai(
      backend = GenerativeBackend.googleAI(),
      useLimitedUseAppCheckTokens = true
    )
    
    // ...
    
    

    Java

    
    // ...
    
    // During instantiation, enable usage of limited-use tokens.
    FirebaseAI ai = FirebaseAI.getInstance(
      /* backend: */ GenerativeBackend.googleAI(),
      /* useLimitedUseAppCheckTokens: */ true
    );
    
    // ...
    
    

    Web

    
    // ...
    
    // During instantiation, enable usage of limited-use tokens.
    const ai = getAI(firebaseApp, {
      backend: new GoogleAIBackend(),
      useLimitedUseAppCheckTokens: true
    });
    
    // ...
    
    

    Dart

    
    // ...
    
    // During instantiation, enable usage of limited-use tokens
    final ai = await FirebaseAI.googleAI(
      useLimitedUseAppCheckTokens: true,
    );
    
    // ...
    
    

    Unity

    // ...
    
    // During instantiation, enable usage of limited-use tokens
    var ai = FirebaseAI.GetInstance(
      useLimitedUseAppCheckTokens: true
    );
    
    // ...
    
  3. บังคับใช้การป้องกันการเล่นซ้ำ

    1. ในโค้ดเบสของแอป ให้ตรวจสอบว่าคุณได้เปิดใช้โทเค็นแบบจำกัดการใช้งานแล้ว (ดูขั้นตอนก่อนหน้า)

    2. ในFirebaseคอนโซล ให้ไปที่ความปลอดภัย > App Check

    3. ขยายมุมมองเมตริกสำหรับ Firebase AI Logic

    4. ตรวจสอบว่าการป้องกันพื้นฐานบังคับใช้แล้ว จากนั้นคลิกต่อไป

    5. สำหรับการป้องกันการเล่นซ้ำ ให้เลือกไม่บังคับใช้ (ตรวจสอบเท่านั้น) หรือบังคับใช้

      พิจารณาสิ่งต่อไปนี้เพื่อตัดสินใจว่าจะบังคับใช้การป้องกันการเล่นซ้ำเมื่อใด

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

      • คุณสามารถตรวจสอบเมตริกยังไม่ได้ยืนยัน: โทเค็นที่นำกลับมาใช้ใหม่ โดยเฉพาะ ซึ่งเป็นจำนวนคำขอที่มีโทเค็นที่ ใช้ไปแล้วในคำขอก่อนหน้า ตรวจสอบเมตริกนี้ใน Firebase คอนโซล (ไปที่ความปลอดภัย > App Check > แท็บ API)

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

ทำความเข้าใจวิธีที่ Firebase AI Logic ผสานรวมกับ App Check

หากต้องการใช้ Firebase AI Logic SDK คุณต้องเปิดใช้ Firebase AI Logic API (firebasevertexai.googleapis.com) ในโปรเจ็กต์ Firebase เนื่องจากคำขอที่ Firebase AI LogicSDK สร้างขึ้นจะถูกส่งไปยังเซิร์ฟเวอร์ Firebase AI Logic ก่อน ซึ่งทำหน้าที่เป็นเกตเวย์พร็อกซีที่Firebase App Checkการยืนยัน เกิดขึ้นก่อนที่ระบบจะอนุญาตให้คำขอไปยังแบ็กเอนด์ของผู้ให้บริการ "Gemini API" ที่คุณเลือกและ API เพื่อเข้าถึงโมเดล Gemini และ Imagen

คำถามที่พบบ่อยและการแก้ปัญหา

ดูคำถามที่พบบ่อยและการแก้ปัญหาเพิ่มเติม หรือรหัสข้อผิดพลาดที่เกี่ยวข้องกับ Firebase AI Logic