เมื่อเรียกใช้ 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 Console Firebase จะบังคับใช้ Firebase App Check โดยอัตโนมัติสำหรับ Firebase AI Logic เพื่อช่วยปกป้อง Gemini API
อย่างไรก็ตาม หากคุณได้ตั้งค่า Firebase AI Logic ในโปรเจ็กต์ Firebase ก่อนช่วงต้นเดือนกรกฎาคม 2026 (หรือไม่ได้บังคับใช้ App Check ด้วยเหตุผลอื่น) คุณจะบังคับใช้ App Check ด้วยตนเองได้โดยใช้คำสั่งต่อไปนี้
ตรวจสอบว่ามีการบังคับใช้ App Check กับ Firebase AI Logic แล้วหรือไม่
ในFirebaseคอนโซล ให้ไปที่ความปลอดภัย > App Check > แท็บ API
ค้นหาแถวของ Firebase AI Logic หากระบุว่า
Unenforcedให้ทำตามวิธีการที่เหลือต่อไป
คลิกแถวของ Firebase AI Logic แล้วคุณจะเห็นกราฟเมตริก คลิกตั้งค่าใต้กราฟเหล่านั้น
ในหน้าจอแรกของกล่องโต้ตอบ (การป้องกันพื้นฐาน) ให้เลือก บังคับใช้ แล้วคลิกต่อไป
ในหน้าจอถัดไป (การป้องกันการเล่นซ้ำ) ให้เลือกปิดใช้ แล้วคลิกต่อไป
ในหน้าจอสุดท้าย โปรดอ่านข้อควรพิจารณาในการบังคับใช้ App Check เพื่อให้แน่ใจว่าคุณพร้อมที่จะบังคับใช้ App Check หากพร้อมแล้ว ให้คลิกดำเนินการต่อ
คุณไม่จำเป็นต้องลงทะเบียนแอปหากต้องการบังคับใช้ App Check และใช้เฉพาะผู้ให้บริการแก้ไขข้อบกพร่องกับ Firebase AI Logic ในแอปก่อนเวอร์ชันที่ใช้งานจริง อย่างไรก็ตาม เมื่อพร้อมที่จะเผยแพร่แอปไปยัง ผู้ใช้ปลายทางแล้ว คุณจะต้องลงทะเบียนแอปเป็นส่วนหนึ่งของการตั้งค่า ผู้ให้บริการการรับรองเวอร์ชันที่ใช้งานจริง (เช่น App Attest, Play Integrity หรือ reCAPTCHA Enterprise)
ขั้นตอนที่ 2: ตั้งค่าผู้ให้บริการแก้ไขข้อบกพร่องสำหรับการพัฒนาในเครื่อง
สำหรับการพัฒนาในเครื่อง คุณสามารถตั้งค่าApp Check ผู้ให้บริการแก้ไขข้อบกพร่องและ ยังคงApp Checkบังคับใช้สำหรับ Firebase AI Logic ได้
Swift
วิธีใช้ผู้ให้บริการแก้ไขข้อบกพร่องขณะเรียกใช้แอปในโปรแกรมจำลอง แบบโต้ตอบ (เช่น ระหว่างการพัฒนาในเครื่อง) มีดังนี้
ในโปรเจ็กต์ Xcode ให้นำเข้า
FirebaseAppCheckและเริ่มต้น App Check ด้วยโรงงานผู้ให้บริการแก้ไขข้อบกพร่องก่อนกำหนดค่าFirebaseimport 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() } } } }รับโทเค็นการแก้ไขข้อบกพร่องโดยทำดังนี้
เปิดแอปในโปรแกรมจำลองหรือบนอุปกรณ์ทดสอบ
เปิดคอนโซล Xcode แล้วมองหาApp Checkโทเค็นการแก้ไขข้อบกพร่อง เช่น
<Warning> [AppCheckCore][I-GAC004001] App Check debug token: '123a4567-b89c-12d3-e456-789012345678'.คัดลอกโทเค็น (เช่น
123a4567-b89c-12d3-e456-789012345678)
ลงทะเบียนโทเค็นการแก้ไขข้อบกพร่องกับ App Check โดยทำดังนี้
ในFirebaseคอนโซล ให้ไปที่ ความปลอดภัย > App Check > แท็บแอป
ค้นหาแอปของคุณ คลิกเมนูรายการเพิ่มเติม () แล้วเลือก จัดการโทเค็นการแก้ไขข้อบกพร่อง
ทำตามวิธีการบนหน้าจอเพื่อลงทะเบียนโทเค็นการแก้ไขข้อบกพร่อง
ดูรายละเอียดเกี่ยวกับผู้ให้บริการแก้ไขข้อบกพร่อง (รวมถึงวิธีรับโทเค็นการแก้ไขข้อบกพร่องใหม่) ได้ที่ เอกสารApp Checkอย่างเป็นทางการ
Kotlin
วิธีใช้ผู้ให้บริการแก้ไขข้อบกพร่องขณะเรียกใช้แอปในโปรแกรมจำลอง แบบโต้ตอบ (เช่น ระหว่างการพัฒนาในเครื่อง) มีดังนี้
ในการสร้างบิลด์การแก้ไขข้อบกพร่อง ให้กำหนดค่า App Check เพื่อใช้ผู้ให้บริการโปรแกรมแก้ไขข้อบกพร่อง factory ดังนี้
Firebase.initialize(context = this) Firebase.appCheck.installAppCheckProviderFactory( DebugAppCheckProviderFactory.getInstance(), )
รับโทเค็นการแก้ไขข้อบกพร่องโดยทำดังนี้
เรียกใช้แอปในโปรแกรมจำลองหรือในอุปกรณ์ทดสอบ
มองหาโทเค็นการแก้ไขข้อบกพร่อง App Check ในบันทึก เช่น
D DebugAppCheckProvider: Enter this debug secret into the allow list in the Firebase Console for your project: 123a4567-b89c-12d3-e456-789012345678คัดลอกโทเค็น (เช่น
123a4567-b89c-12d3-e456-789012345678)
ลงทะเบียนโทเค็นการแก้ไขข้อบกพร่องกับ App Check โดยทำดังนี้
ในFirebaseคอนโซล ให้ไปที่ ความปลอดภัย > App Check > แท็บแอป
ค้นหาแอปของคุณ คลิกเมนูรายการเพิ่มเติม () แล้วเลือก จัดการโทเค็นการแก้ไขข้อบกพร่อง
ทำตามวิธีการบนหน้าจอเพื่อลงทะเบียนโทเค็นการแก้ไขข้อบกพร่อง
ดูรายละเอียดเกี่ยวกับผู้ให้บริการแก้ไขข้อบกพร่อง (รวมถึงวิธีรับโทเค็นการแก้ไขข้อบกพร่องใหม่) ได้ที่ เอกสารApp Checkอย่างเป็นทางการ
Java
วิธีใช้ผู้ให้บริการแก้ไขข้อบกพร่องขณะเรียกใช้แอปในโปรแกรมจำลอง แบบโต้ตอบ (เช่น ระหว่างการพัฒนาในเครื่อง) มีดังนี้
ในการสร้างบิลด์การแก้ไขข้อบกพร่อง ให้กำหนดค่า App Check เพื่อใช้ผู้ให้บริการโปรแกรมแก้ไขข้อบกพร่อง factory ดังนี้
FirebaseApp.initializeApp(/*context=*/ this); FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance(); firebaseAppCheck.installAppCheckProviderFactory( DebugAppCheckProviderFactory.getInstance());
รับโทเค็นการแก้ไขข้อบกพร่องโดยทำดังนี้
เรียกใช้แอปในโปรแกรมจำลองหรือในอุปกรณ์ทดสอบ
มองหาโทเค็นการแก้ไขข้อบกพร่อง App Check ในบันทึก เช่น
D DebugAppCheckProvider: Enter this debug secret into the allow list in the Firebase Console for your project: 123a4567-b89c-12d3-e456-789012345678คัดลอกโทเค็น (เช่น
123a4567-b89c-12d3-e456-789012345678)
ลงทะเบียนโทเค็นการแก้ไขข้อบกพร่องกับ App Check โดยทำดังนี้
ในFirebaseคอนโซล ให้ไปที่ ความปลอดภัย > App Check > แท็บแอป
ค้นหาแอปของคุณ คลิกเมนูรายการเพิ่มเติม () แล้วเลือก จัดการโทเค็นการแก้ไขข้อบกพร่อง
ทำตามวิธีการบนหน้าจอเพื่อลงทะเบียนโทเค็นการแก้ไขข้อบกพร่อง
ดูรายละเอียดเกี่ยวกับผู้ให้บริการแก้ไขข้อบกพร่อง (รวมถึงวิธีรับโทเค็นการแก้ไขข้อบกพร่องใหม่) ได้ที่ เอกสารApp Checkอย่างเป็นทางการ
Web
วิธีใช้ผู้ให้บริการแก้ไขข้อบกพร่องขณะเรียกใช้แอปจาก localhost
แบบอินเทอร์แอกทีฟ (เช่น ระหว่างการพัฒนาในเครื่อง) มีดังนี้
ในบิลด์การแก้ไขข้อบกพร่อง ให้เปิดใช้โหมดแก้ไขข้อบกพร่องโดยตั้งค่า
self.FIREBASE_APPCHECK_DEBUG_TOKENเป็นtrueก่อนที่จะเริ่มต้น App Check เช่นself.FIREBASE_APPCHECK_DEBUG_TOKEN = true; initializeAppCheck(app, { /* App Check options */ });ไปที่เว็บแอปในเครื่องและเปิดเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ของเบราว์เซอร์ คุณจะเห็นโทเค็นการแก้ไขข้อบกพร่องใน คอนโซลดีบัก
AppCheck debug token: "123a4567-b89c-12d3-e456-789012345678". You will need to safelist it in the Firebase console for it to work.ลงทะเบียนโทเค็นการแก้ไขข้อบกพร่องกับ App Check โดยทำดังนี้
ในFirebaseคอนโซล ให้ไปที่ ความปลอดภัย > App Check > แท็บแอป
ค้นหาแอปของคุณ คลิกเมนูรายการเพิ่มเติม () แล้วเลือก จัดการโทเค็นการแก้ไขข้อบกพร่อง
ทำตามวิธีการบนหน้าจอเพื่อลงทะเบียนโทเค็นการแก้ไขข้อบกพร่อง
ดูรายละเอียดเกี่ยวกับผู้ให้บริการแก้ไขข้อบกพร่อง (รวมถึงวิธีรับโทเค็นการแก้ไขข้อบกพร่องใหม่) ได้ที่ เอกสารApp Checkอย่างเป็นทางการ
Dart
iOS+
วิธีใช้ผู้ให้บริการแก้ไขข้อบกพร่องขณะเรียกใช้แอปในโปรแกรมจำลอง แบบโต้ตอบ (เช่น ระหว่างการพัฒนาในเครื่อง) มีดังนี้
เปิดใช้งาน 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()); }เปิดใช้การบันทึกการแก้ไขข้อบกพร่องในโปรเจ็กต์ Xcode โดยทำดังนี้
- เปิดผลิตภัณฑ์ > รูปแบบ > แก้ไขรูปแบบ
- เลือกเรียกใช้จากเมนูด้านซ้าย แล้วเลือกแท็บอาร์กิวเมนต์
- ในส่วนอาร์กิวเมนต์ที่ส่งเมื่อตอนเริ่ม ให้เพิ่ม
-FIRDebugEnabled
รับโทเค็นการแก้ไขข้อบกพร่องโดยทำดังนี้
เปิด
ios/Runner.xcworkspaceด้วย Xcode แล้วเรียกใช้แอปใน โปรแกรมจำลองหรือในอุปกรณ์ทดสอบเปิดคอนโซล Xcode แล้วมองหาApp Checkโทเค็นการแก้ไขข้อบกพร่อง เช่น
<Warning> [AppCheckCore][I-GAC004001] App Check debug token: '123a4567-b89c-12d3-e456-789012345678'.คัดลอกโทเค็น (เช่น
123a4567-b89c-12d3-e456-789012345678)
ลงทะเบียนโทเค็นการแก้ไขข้อบกพร่องกับ App Check โดยทำดังนี้
ในFirebaseคอนโซล ให้ไปที่ ความปลอดภัย > App Check > แท็บแอป
ค้นหาแอปของคุณ คลิกเมนูรายการเพิ่มเติม () แล้วเลือก จัดการโทเค็นการแก้ไขข้อบกพร่อง
ทำตามวิธีการบนหน้าจอเพื่อลงทะเบียนโทเค็นการแก้ไขข้อบกพร่อง
Android
วิธีใช้ผู้ให้บริการแก้ไขข้อบกพร่องขณะเรียกใช้แอปในโปรแกรมจำลอง แบบโต้ตอบ (เช่น ระหว่างการพัฒนาในเครื่อง) มีดังนี้
เปิดใช้งาน 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()); }รับโทเค็นการแก้ไขข้อบกพร่องโดยทำดังนี้
เรียกใช้แอปในโปรแกรมจำลองหรือในอุปกรณ์ทดสอบ
มองหาโทเค็นการแก้ไขข้อบกพร่อง App Check ในบันทึก เช่น
D DebugAppCheckProvider: Enter this debug secret into the allow list in the Firebase Console for your project: 123a4567-b89c-12d3-e456-789012345678คัดลอกโทเค็น (เช่น
123a4567-b89c-12d3-e456-789012345678)
ลงทะเบียนโทเค็นการแก้ไขข้อบกพร่องกับ App Check โดยทำดังนี้
ในFirebaseคอนโซล ให้ไปที่ ความปลอดภัย > App Check > แท็บแอป
ค้นหาแอปของคุณ คลิกเมนูรายการเพิ่มเติม () แล้วเลือก จัดการโทเค็นการแก้ไขข้อบกพร่อง
ทำตามวิธีการบนหน้าจอเพื่อลงทะเบียนโทเค็นการแก้ไขข้อบกพร่อง
เว็บ
วิธีใช้ผู้ให้บริการแก้ไขข้อบกพร่องขณะเรียกใช้แอปจาก
localhost แบบอินเทอร์แอกทีฟ (เช่น ระหว่างการพัฒนาในเครื่อง) มีดังนี้
ในไฟล์
web/index.htmlให้เปิดใช้โหมดแก้ไขข้อบกพร่องโดยตั้งค่าself.FIREBASE_APPCHECK_DEBUG_TOKENเป็นtrueดังนี้<body> <script> self.FIREBASE_APPCHECK_DEBUG_TOKEN = true; </script> ... </body>เรียกใช้เว็บแอปในเครื่องและเปิดเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ของเบราว์เซอร์ ใน คอนโซลดีบัก คุณจะเห็นโทเค็นดีบัก
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ลงทะเบียนโทเค็นการแก้ไขข้อบกพร่องกับ App Check โดยทำดังนี้
ในFirebaseคอนโซล ให้ไปที่ ความปลอดภัย > App Check > แท็บแอป
ค้นหาแอปของคุณ คลิกเมนูรายการเพิ่มเติม () แล้วเลือก จัดการโทเค็นการแก้ไขข้อบกพร่อง
ทำตามวิธีการบนหน้าจอเพื่อลงทะเบียนโทเค็นการแก้ไขข้อบกพร่อง
ดูรายละเอียดเกี่ยวกับผู้ให้บริการแก้ไขข้อบกพร่อง (รวมถึงวิธีรับโทเค็นการแก้ไขข้อบกพร่องใหม่) ได้ที่ เอกสารApp Checkอย่างเป็นทางการ
Unity
วิธีใช้ผู้ให้บริการแก้ไขข้อบกพร่องขณะเรียกใช้แอปในโปรแกรมจำลอง แบบโต้ตอบ (เช่น ระหว่างการพัฒนาในเครื่อง) มีดังนี้
สร้างโทเค็นการแก้ไขข้อบกพร่องในFirebaseคอนโซลโดยทำดังนี้
ในFirebaseคอนโซล ให้ไปที่ความปลอดภัย > App Check > แท็บแอป
ค้นหาแอปของคุณ คลิกเมนูรายการเพิ่มเติม () แล้วเลือก จัดการโทเค็นการแก้ไขข้อบกพร่อง
ทำตามวิธีการบนหน้าจอเพื่อสร้างโทเค็นการแก้ไขข้อบกพร่องใหม่
เพิ่มข้อมูลต่อไปนี้ในโค้ดการเริ่มต้นของแอป
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)
เลือกผู้ให้บริการการรับรองการใช้งานจริง และทําตามวิธีการติดตั้งใช้งาน ที่ลิงก์ต่อไปนี้
- แพลตฟอร์ม Apple: DeviceCheck หรือ App Attest หรือ reCAPTCHA Enterprise
- Android Play Integrity หรือ reCAPTCHA Enterprise
- เว็บ: reCAPTCHA Enterprise
- Flutter: รองรับ
ผู้ให้บริการทั้งหมดข้างต้น
รวมถึง
reCAPTCHA Enterprise
หากคุณใช้ปลั๊กอินเวอร์ชันเก่า โปรดดู หมายเหตุเกี่ยวกับการสร้างอินสแตนซ์พิเศษด้านล่าง สำหรับ Flutter และ App Check - Unity: รองรับ ผู้ให้บริการทั้งหมดข้างต้น (รองรับ reCAPTCHA Enterprise เร็วๆ นี้)
โปรดทราบว่าหากผู้ให้บริการการรับรองเหล่านี้ไม่เพียงพอต่อความต้องการของคุณ คุณสามารถใช้ผู้ให้บริการที่กำหนดเองซึ่งใช้ผู้ให้บริการการรับรองบุคคลที่สามหรือเทคนิคการรับรองของคุณเอง
(แนะนำ) เพิ่มการปกป้องโดยเพิ่มการป้องกันการเล่นซ้ำ ซึ่งหมายความว่าใช้โทเค็น 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) ที่กำหนดค่าได้ระหว่าง
อย่างไรก็ตาม คุณสามารถเพิ่มการป้องกันให้เหนือกว่าการป้องกันพื้นฐานนี้ได้โดยการบังคับใช้การป้องกันการเล่นซ้ำ ซึ่งจะใช้โทเค็นแบบใช้ครั้งเดียวแทน เมื่อบังคับใช้การป้องกันการเล่นซ้ำ ระบบจะดำเนินการต่อไปนี้
App Check จะบล็อกคำขอไปยัง Firebase AI Logic ที่ใช้ โทเค็นเซสชัน แต่ App Check จะอนุญาตคำขอไปยัง Firebase AI Logic ก็ต่อเมื่อใช้โทเค็นที่จำกัดการใช้ซึ่งสร้างขึ้นใหม่
หลังจากยืนยันโทเค็นที่จำกัดการใช้แล้ว ระบบจะใช้โทเค็นดังกล่าวเพื่อให้ใช้ได้เพียงครั้งเดียว ซึ่งจะช่วยป้องกันการโจมตีแบบใช้โทเค็นซ้ำ (Replay)
App Check SDK จะสร้างโทเค็นแบบจำกัดการใช้งานใหม่สำหรับคำขอแต่ละคำขอ โปรดทราบว่ากระบวนการนี้อาจส่งผลต่อคำขอของคุณโดยการเพิ่มเวลาในการตอบสนองและ บางครั้งอาจมีค่าใช้จ่าย (ขึ้นอยู่กับผู้ให้บริการการรับรอง)
ตั้งค่าและบังคับใช้การป้องกันการเล่นซ้ำ
|
คลิกผู้ให้บริการ Gemini API เพื่อดูเนื้อหาและโค้ดเฉพาะของผู้ให้บริการ ในหน้านี้ |
วิธีตั้งค่าและบังคับใช้การป้องกันการเล่นซ้ำมีดังนี้
หากยังไม่ได้ ตั้งค่า App Check ให้ ทำตามวิธีการก่อนหน้าในหน้านี้
เปิดใช้โทเค็นที่จำกัดการใช้
ในแอปขณะสร้างอินสแตนซ์ ให้ตั้งค่าพารามิเตอร์
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 ); // ...บังคับใช้การป้องกันการเล่นซ้ำ
ในโค้ดเบสของแอป ให้ตรวจสอบว่าคุณได้เปิดใช้โทเค็นแบบจำกัดการใช้งานแล้ว (ดูขั้นตอนก่อนหน้า)
ในFirebaseคอนโซล ให้ไปที่ความปลอดภัย > App Check
ขยายมุมมองเมตริกสำหรับ Firebase AI Logic
ตรวจสอบว่าการป้องกันพื้นฐานบังคับใช้แล้ว จากนั้นคลิกต่อไป
สำหรับการป้องกันการเล่นซ้ำ ให้เลือกไม่บังคับใช้ (ตรวจสอบเท่านั้น) หรือบังคับใช้
พิจารณาสิ่งต่อไปนี้เพื่อตัดสินใจว่าจะบังคับใช้การป้องกันการเล่นซ้ำเมื่อใด
เราขอแนะนำให้ตรวจสอบคำขอหากผู้ใช้จำนวนมาก มีแนวโน้มที่จะใช้แอปเวอร์ชันก่อนหน้าโดยไม่ได้เปิดใช้ โทเค็นแบบจำกัดการใช้งาน หากคุณบังคับใช้การป้องกันการเล่นซ้ำทันที ระบบจะบล็อกคำขอจากผู้ใช้เหล่านั้น
คุณสามารถตรวจสอบเมตริกยังไม่ยืนยัน: โทเค็นที่นำกลับมาใช้ใหม่ โดยเฉพาะ ซึ่งเป็นจำนวนคำขอที่มีโทเค็นที่ ใช้ไปแล้วในคำขอก่อนหน้า ตรวจสอบเมตริกนี้ใน Firebase คอนโซล (ไปที่ความปลอดภัย > App Check > แท็บ API)
หากคำขอล่าสุดส่วนใหญ่เป็นคำขอในหมวดหมู่นี้ คุณสามารถหลีกเลี่ยงการรบกวนผู้ใช้และพิจารณารอการบังคับใช้ การป้องกันการเล่นซ้ำจนกว่าจะมีผู้ใช้อัปเดตเป็นแอปเวอร์ชันที่ใช้โทเค็นแบบใช้ครั้งเดียวมากขึ้น
ทำความเข้าใจวิธีที่ Firebase AI Logic ผสานรวมกับ App Check
หากต้องการใช้ Firebase AI Logic SDK คุณต้องเปิดใช้
Firebase AI Logic API (firebasevertexai.googleapis.com)
ในโปรเจ็กต์ Firebase เนื่องจากระบบจะส่งคำขอที่ SDK ของ Firebase AI Logic สร้างขึ้นไปยังเซิร์ฟเวอร์ Firebase AI Logic
ก่อน ซึ่งทำหน้าที่เป็นเกตเวย์พร็อกซีที่Firebase App Checkการยืนยัน
เกิดขึ้นก่อนที่ระบบจะอนุญาตให้คำขอไปยัง Gemini API และ
เข้าถึงโมเดล Gemini
คำถามที่พบบ่อยและการแก้ปัญหา
ดูคำถามที่พบบ่อยและการแก้ปัญหาเพิ่มเติม หรือรหัสข้อผิดพลาดที่เกี่ยวข้องกับ Firebase AI Logic