На этой странице показано, как включить App Check в веб-приложении, используя встроенный провайдер reCAPTCHA v3. Включив App Check , вы гарантируете, что доступ к ресурсам Firebase вашего проекта будет иметь только ваше приложение. См. обзор этой функции.
Для новых интеграций следует использовать reCAPTCHA Enterprise, и мы настоятельно рекомендуем разработчикам приложений, использующих reCAPTCHA v3, по возможности перейти на эту версию.
Чтобы узнать о различиях между reCAPTCHA v3 и reCAPTCHA Enterprise, ознакомьтесь со сравнением функций .
Обратите внимание, что reCAPTCHA v3 невидима для пользователей. Поставщик reCAPTCHA v3 никогда не потребует от пользователей решения контрольной задачи. См. документацию reCAPTCHA v3 .
Если вы хотите использовать App Check с собственным пользовательским поставщиком, см. раздел «Реализация пользовательского поставщика App Check .
1. Настройте свой проект Firebase.
Добавьте Firebase в свой JavaScript-проект, если вы еще этого не сделали.
Зарегистрируйте свой сайт для reCAPTCHA v3 и получите ключ и секретный ключ для вашего сайта reCAPTCHA v3.
Зарегистрируйте свои приложения для использования App Check с помощью поставщика reCAPTCHA в разделе App Check консоли Firebase . Вам потребуется указать секретный ключ, полученный на предыдущем шаге.
Обычно необходимо зарегистрировать все приложения вашего проекта, поскольку после включения принудительного применения правил для продукта Firebase доступ к ресурсам бэкэнда этого продукта будет иметь только зарегистрированные приложения.
Необязательно : В настройках регистрации приложения установите пользовательское время жизни (TTL) для токенов App Check выданных провайдером. Вы можете установить TTL на любое значение от 30 минут до 7 дней. При изменении этого значения следует учитывать следующие компромиссы:
- Безопасность: Более короткие значения TTL обеспечивают более высокую безопасность, поскольку сокращают период времени, в течение которого утечка или перехват токена могут быть использованы злоумышленником в корыстных целях.
- Производительность: Более короткие значения TTL означают, что ваше приложение будет выполнять аттестацию чаще. Поскольку процесс аттестации приложения каждый раз добавляет задержку к сетевым запросам, короткий TTL может повлиять на производительность вашего приложения.
- Квота и стоимость: Более короткие сроки действия TTL и частая повторная аттестация быстрее истощают вашу квоту, а для платных услуг могут стоить дороже. См. раздел «Квоты и лимиты» .
Значение TTL по умолчанию, равное 1 дню, является разумным для большинства приложений. Обратите внимание, что библиотека App Check обновляет токены примерно через половину времени TTL.
Настройка дополнительных параметров (необязательно)
Когда пользователь посещает ваше веб-приложение, reCAPTCHA v3 оценивает уровень риска взаимодействия с пользователем и возвращает оценку от 0,0 до 1,0; 1,0 означает высокую вероятность положительного взаимодействия, 0,0 — высокую вероятность того, что это бот. App Check позволяет настроить пороговое значение риска приложения , чтобы вы могли регулировать допустимый уровень риска.
Для большинства случаев рекомендуется использовать пороговое значение по умолчанию, равное 0,5 . Если для вашего случая требуется корректировка, это можно сделать в разделе App Check » консоли Firebase для каждого из ваших веб-приложений.
Подробности
App Check использует настроенный вами пороговый уровень риска приложения в качестве минимального балла reCAPTCHA v3, необходимого для того, чтобы взаимодействие с пользователем считалось легитимным. Все баллы reCAPTCHA v3, строго ниже настроенного вами порогового уровня риска приложения, будут отклонены. При настройке порогового уровня риска приложения учитывайте следующее:
- Чтобы отслеживать распределение оценок reCAPTCHA v3 для вашего веб-приложения, перейдите в консоль администратора reCAPTCHA и выберите сайт, соответствующий вашему веб-приложению.
Если вы не готовы к высокому уровню риска, связанного с вашим приложением, переместите ползунок влево, чтобы повысить пороговое значение риска.
- Значение 1,0 не рекомендуется, поскольку этот параметр может также потенциально заблокировать доступ для законных пользователей, которые не соответствуют этому высокому порогу доверия.
Если вы готовы к высокому уровню риска, связанного с вашим приложением, переместите ползунок вправо, чтобы снизить пороговое значение риска.
- Значение 0,0 не рекомендуется, поскольку эта настройка отключает защиту от злоупотреблений.
Для получения дополнительной информации обратитесь к документации reCAPTCHA v3 .
2. Добавьте библиотеку App Check в свое приложение.
Если вы еще этого не сделали, добавьте Firebase в свое веб-приложение . Обязательно импортируйте библиотеку App Check .
3. Инициализация App Check
Добавьте следующий код инициализации в ваше приложение, прежде чем обращаться к каким-либо сервисам Firebase. Вам потребуется передать ключ сайта reCAPTCHA, который вы создали в консоли reCAPTCHA, в activate() .
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);
Следующие шаги
После установки библиотеки App Check в ваше приложение, разверните его.
Обновленное клиентское приложение начнет отправлять токены App Check вместе с каждым запросом в Firebase, но для продуктов Firebase не потребуется, чтобы токены были действительными, пока вы не включите проверку в разделе App Check консоли Firebase.
Отслеживайте показатели и обеспечьте соблюдение требований.
Однако, прежде чем включать функцию принудительного применения, следует убедиться, что это не нарушит работу существующих законных пользователей. С другой стороны, если вы наблюдаете подозрительное использование ресурсов вашего приложения, возможно, стоит включить функцию принудительного применения раньше.
Чтобы помочь вам принять это решение, вы можете ознакомиться с показателями App Check для используемых вами сервисов:
- Отслеживайте метрики запросов App Check для Firebase AI Logic , Data Connect , Realtime Database , Cloud Firestore , Cloud Storage , Authentication , Google Identity for iOS, Maps JavaScript API и Places API (новая функция).
- Отслеживайте метрики запросов App Check для Cloud Functions .
Включить принудительное выполнение App Check
Когда вы поймете, как App Check повлияет на ваших пользователей, и будете готовы продолжить, вы можете включить принудительное применение App Check :
- Включите App Check ) для Firebase AI Logic , Data Connect , Realtime Database , Cloud Firestore , Cloud Storage , Authentication , Google Identity for iOS, Maps JavaScript API и Places API (новая функция).
- Включите принудительное применение App Check для Cloud Functions .
Используйте App Check в средах отладки.
Если после регистрации вашего приложения в App Check вы хотите запустить его в среде, которую App Check обычно не классифицирует как допустимую, например, локально во время разработки или в среде непрерывной интеграции (CI), вы можете создать отладочную сборку вашего приложения, которая использует отладочный поставщик App Check вместо реального поставщика аттестации.
См. раздел «Использование App Check с помощью поставщика отладки в веб-приложениях» .