ป้องกันการละเมิด 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. ในหน้าจอถัดไป (Replay protection) ให้เลือก Disabled แล้วคลิก Continue

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

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

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

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

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

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

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

คลิกผู้ให้บริการ 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

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

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

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