Na tej stronie dowiesz się, jak włączyć App Check w aplikacji internetowej za pomocą wbudowanego dostawcy reCAPTCHA v3. Gdy włączysz App Check, pomożesz zapewnić, że tylko Twoja aplikacja będzie mogła uzyskiwać dostęp do zasobów Firebase w Twoim projekcie. Zobacz an Przegląd tej funkcji.
Pamiętaj, że reCAPTCHA v3 jest niewidoczna dla użytkowników. Dostawca reCAPTCHA v3 nigdy nie będzie wymagać od użytkowników rozwiązywania testu. Zapoznaj się z dokumentacją reCAPTCHA v3.
Jeśli chcesz używać App Check z własnym dostawcą niestandardowym, przeczytaj artykuł Implementowanie niestandardowego dostawcy App Check.
1. Skonfiguruj projekt w Firebase
Jeśli jeszcze tego nie zrobisz, dodaj Firebase do projektu JavaScript.
Zarejestruj swoją witrynę w reCAPTCHA v3 i uzyskaj klucz witryny reCAPTCHA v3 oraz klucz tajny.
W konsoli Firebase otwórz Zabezpieczenia > Sprawdzanie aplikacji.
Na karcie Aplikacje zarejestruj aplikacje, aby używać App Check z dostawcą reCAPTCHA. Musisz podać klucz tajny , który został uzyskany w witrynie reCAPTCHA.
Zwykle musisz zarejestrować wszystkie aplikacje w projekcie, ponieważ gdy włączysz egzekwowanie zasad w przypadku usługi Firebase, tylko zarejestrowane aplikacje będą mogły uzyskiwać dostęp do zasobów backendu tej usługi.
Opcjonalnie: w ustawieniach rejestracji aplikacji ustaw niestandardowy czas życia (TTL) tokenów wydawanych przez dostawcę.App Check Możesz ustawić TTL na dowolną wartość od 30 minut do 7 dni. Podczas zmiany tej wartości pamiętaj o tych kompromisach:
- Bezpieczeństwo: krótsze czasy TTL zapewniają większe bezpieczeństwo, ponieważ zmniejszają okno, w którym wyciekły lub przechwycony token może zostać wykorzystany przez atakującego.
- Wydajność: krótsze czasy TTL oznaczają, że aplikacja będzie częściej przeprowadzać atestację. Ponieważ proces atestacji aplikacji dodaje opóźnienie do żądań sieciowych za każdym razem, gdy jest wykonywany, krótki czas TTL może wpłynąć na wydajność aplikacji.
- Limit i koszt: krótsze czasy TTL i częste ponowne atestacje szybciej wyczerpują limit, a w przypadku usług płatnych mogą generować wyższe koszty. Zobacz Limity.
Domyślny czas TTL wynoszący 1 dzień jest odpowiedni dla większości aplikacji. Pamiętaj, że biblioteka App Check odświeża tokeny mniej więcej w połowie czasu TTL.
Skonfiguruj ustawienia zaawansowane (opcjonalnie)
Gdy użytkownik odwiedza Twoją aplikację internetową, reCAPTCHA v3 ocenia poziom ryzyka, jakie stwarza interakcja użytkownika, i zwraca wynik od 0,0 do 1,0. Wynik 1,0 oznacza, że z dużym prawdopodobieństwem chodzi o prawidłową interakcję, a wynik 0,0 – że z dużym prawdopodobieństwem chodzi o bota. App Check umożliwia skonfigurowanie progu ryzyka aplikacji , dzięki czemu możesz dostosować tolerancję na to ryzyko.
W większości przypadków zalecana jest domyślna wartość progu 0, 5. Jeśli Twój przypadek użycia wymaga dostosowania, możesz to zrobić w sekcji App Check w konsoli Firebase dla każdej aplikacji internetowej.
Szczegóły
App Check używa skonfigurowanego progu ryzyka aplikacji jako minimalnego wyniku reCAPTCHA v3 wymaganego, aby interakcja użytkownika została uznana za prawidłową. Wszystkie wyniki reCAPTCHA v3, które są ściśle mniejsze niż skonfigurowany próg ryzyka aplikacji, zostaną odrzucone. Podczas dostosowywania progu ryzyka aplikacji pamiętaj o tych kwestiach:
- Aby monitorować rozkład wyników reCAPTCHA v3 w aplikacji internetowej, otwórz konsolę administracyjną reCAPTCHA i wybierz witrynę odpowiadającą aplikacji internetowej.
Jeśli masz niską tolerancję ryzyka aplikacji, przesuń suwak w lewo , aby zwiększyć próg ryzyka aplikacji.
- Nie zalecamy ustawiania wartości 1,0, ponieważ to ustawienie może też uniemożliwić dostęp prawidłowym użytkownikom, którzy nie spełniają tego wysokiego progu zaufania.
Jeśli masz wysoką tolerancję ryzyka aplikacji, przesuń suwak w prawo , aby zmniejszyć próg ryzyka aplikacji.
- Nie zalecamy ustawiania wartości 0,0, ponieważ to ustawienie wyłącza ochronę przed nadużyciami.
Więcej informacji znajdziesz w dokumentacji reCAPTCHA v3.
2. Dodaj bibliotekę App Check do swojej aplikacji
Jeśli jeszcze tego nie zrobisz, dodaj Firebase do swojej aplikacji internetowej. Pamiętaj, aby zaimportować bibliotekę App Check.
3. Zainicjuj App Check
Zanim uzyskasz dostęp do jakichkolwiek usług Firebase, dodaj do aplikacji ten kod inicjujący. Musisz przekazać do funkcji activate() klucz witryny reCAPTCHA, który został przez Ciebie
utworzony w konsoli reCAPTCHA.
Web
import { initializeApp } from "firebase/app"; import { initializeAppCheck, ReCaptchaV3Provider } from "firebase/app-check"; const app = initializeApp({ // Your firebase configuration object }); // Pass your reCAPTCHA v3 site key (public key) to activate(). Make sure this // key is the counterpart to the secret key you set in the Firebase console. const appCheck = initializeAppCheck(app, { provider: new ReCaptchaV3Provider('abcdefghijklmnopqrstuvwxy-1234567890abcd'), // Optional argument. If true, the SDK automatically refreshes App Check // tokens as needed. isTokenAutoRefreshEnabled: true });
Web
firebase.initializeApp({ // Your firebase configuration object }); const appCheck = firebase.appCheck(); // Pass your reCAPTCHA v3 site key (public key) to activate(). Make sure this // key is the counterpart to the secret key you set in the Firebase console. appCheck.activate( 'abcdefghijklmnopqrstuvwxy-1234567890abcd', // Optional argument. If true, the SDK automatically refreshes App Check // tokens as needed. true);
Dalsze kroki
Gdy biblioteka App Check zostanie zainstalowana w aplikacji, wdróż ją.
Zaktualizowana aplikacja kliencka zacznie wysyłać tokeny App Check wraz z każdym żądaniem wysyłanym do Firebase, ale usługi Firebase nie będą wymagać, aby tokeny były prawidłowe, dopóki nie włączysz egzekwowania zasad w sekcji App Check w konsoli Firebase.
Monitorowanie danych i włączanie egzekwowania zasad
Zanim włączysz egzekwowanie zasad, upewnij się, że nie zakłóci to pracy dotychczasowych prawidłowych użytkowników. Z drugiej strony, jeśli zauważysz podejrzane korzystanie z zasobów aplikacji, możesz włączyć egzekwowanie zasad wcześniej.
Aby ułatwić podjęcie decyzji, możesz sprawdzić dane App Check dotyczące używanych usług:
- Monitoruj dane żądańApp Check dotyczące usług Firebase AI Logic, SQL Connect, Realtime Database, Cloud Firestore, Cloud Storage, Authentication, Google Identity for iOS, Maps JavaScript API i Places API (New).
- Monitoruj dane żądań App Check dotyczące Cloud Functions.
Włącz egzekwowanie zasad App Check
Gdy zrozumiesz, jak App Check wpłynie na użytkowników, i będziesz gotowy(-a) do kontynuowania, możesz włączyć egzekwowanie zasad App Check:
- Włącz App Check egzekwowanie zasad w przypadku Firebase AI Logic, SQL Connect, Realtime Database, Cloud Firestore, Cloud Storage, Authentication, Google Identity for iOS, Maps JavaScript API i Places API (New).
- Włącz egzekwowanie zasad App Check w przypadku Cloud Functions.
Używanie App Check w środowiskach debugowania
Jeśli po zarejestrowaniu aplikacji w App Check chcesz uruchomić swoją aplikację w środowisku, które App Check zwykle nie klasyfikuje jako prawidłowe, np. lokalnie podczas programowania lub w środowisku ciągłej integracji (CI), możesz utworzyć kompilację debugowania aplikacji, która zamiast prawdziwego dostawcy atestacji używa dostawcy debugowania App Check.
Zobacz Używanie App Check z dostawcą debugowania w aplikacjach internetowych.