Начните использовать проверку приложений с помощью reCAPTCHA v3 в веб-приложениях.

На этой странице показано, как включить App Check в веб-приложении, используя встроенный провайдер reCAPTCHA v3. Включив App Check , вы гарантируете, что доступ к ресурсам Firebase вашего проекта будет иметь только ваше приложение. См. обзор этой функции.

Обратите внимание, что reCAPTCHA v3 невидима для пользователей. Поставщик reCAPTCHA v3 никогда не потребует от пользователей решения контрольной задачи. См. документацию reCAPTCHA v3 .

Если вы хотите использовать App Check с собственным пользовательским поставщиком, см. раздел «Реализация пользовательского поставщика App Check .

1. Настройте свой проект Firebase.

  1. Добавьте Firebase в свой JavaScript-проект, если вы еще этого не сделали.

  2. Зарегистрируйте свой сайт для reCAPTCHA v3 и получите ключ и секретный ключ для вашего сайта reCAPTCHA v3.

  3. Зарегистрируйте свои приложения для использования App Check с помощью поставщика reCAPTCHA в разделе App Check консоли Firebase . Вам потребуется указать секретный ключ, полученный на предыдущем шаге.

    Обычно необходимо зарегистрировать все приложения вашего проекта, поскольку после включения принудительного применения правил для продукта Firebase доступ к ресурсам бэкэнда этого продукта будет иметь только зарегистрированные приложения.

  4. Необязательно : В настройках регистрации приложения установите пользовательское время жизни (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

Когда вы поймете, как App Check повлияет на ваших пользователей, и будете готовы продолжить, вы можете включить принудительное применение App Check :

Используйте App Check в средах отладки.

Если после регистрации вашего приложения в App Check вы хотите запустить его в среде, которую App Check обычно не классифицирует как допустимую, например, локально во время разработки или в среде непрерывной интеграции (CI), вы можете создать отладочную сборку вашего приложения, которая использует отладочный поставщик App Check вместо реального поставщика аттестации.

См. раздел «Использование App Check с помощью поставщика отладки в веб-приложениях» .