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

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

Обратите внимание, что App Check использует ключи сайта на основе оценок reCAPTCHA Enterprise, что делает его невидимым для пользователей. Провайдер reCAPTCHA Enterprise не требует от пользователей решения каких-либо задач.

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

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

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

  2. Откройте раздел reCAPTCHA Enterprise в консоли Cloud и выполните следующие действия:

    1. Если вам будет предложено включить API reCAPTCHA Enterprise, сделайте это.
    2. Создайте ключ типа «Веб-сайт» . Вам потребуется указать домены, на которых размещено ваше веб-приложение. Оставьте параметр «Использовать проверку по флажку» неактивным .
  3. Зарегистрируйте свои приложения для использования App Check у поставщика reCAPTCHA Enterprise в разделе App Check консоли Firebase . Вам потребуется указать ключ сайта, полученный на предыдущем шаге.

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

  4. Необязательно : в настройках регистрации приложения задайте время жизни (TTL) для токенов App Check выдаваемых поставщиком. Вы можете установить любое значение TTL от 30 минут до 7 дней. При изменении этого значения учитывайте следующие компромиссы:

    • Безопасность: Более короткие значения TTL обеспечивают более высокий уровень безопасности, поскольку уменьшают время, в течение которого злоумышленник может злоупотребить утечкой или перехватом токена.
    • Производительность: Более короткие TTL означают, что ваше приложение будет чаще выполнять аттестацию. Поскольку процесс аттестации приложения увеличивает задержку сетевых запросов при каждом выполнении, короткий TTL может повлиять на производительность вашего приложения.
    • Квота и стоимость: более короткие TTL и частая повторная аттестация быстрее исчерпывают вашу квоту, а платные услуги могут стоить дороже. См. раздел «Квоты и лимиты» .

    Значение TTL по умолчанию, равное 1 часу , подходит большинству приложений. Обратите внимание, что библиотека App Check обновляет токены примерно через половину срока TTL.

2. Добавьте библиотеку App Check в свое приложение.

Добавьте Firebase в своё веб-приложение, если вы ещё этого не сделали. Обязательно импортируйте библиотеку App Check .

3. Инициализируйте App Check

Добавьте следующий код инициализации в приложение, прежде чем обращаться к каким-либо службам Firebase. Вам потребуется передать ключ сайта reCAPTCHA Enterprise, созданный в консоли Cloud, для метода activate() .

Web

import { initializeApp } from "firebase/app";
import { initializeAppCheck, ReCaptchaEnterpriseProvider } from "firebase/app-check";

const app = initializeApp({
  // Your Firebase configuration object.
});

// Create a ReCaptchaEnterpriseProvider instance using your reCAPTCHA Enterprise
// site key and pass it to initializeAppCheck().
const appCheck = initializeAppCheck(app, {
  provider: new ReCaptchaEnterpriseProvider(/* reCAPTCHA Enterprise site key */),
  isTokenAutoRefreshEnabled: true // Set to true to allow auto-refresh.
});

Web

firebase.initializeApp({
  // Your Firebase configuration object.
});

// Create a ReCaptchaEnterpriseProvider instance using your reCAPTCHA Enterprise
// site key and pass it to activate().
const appCheck = firebase.appCheck();
appCheck.activate(
  new firebase.appCheck.ReCaptchaEnterpriseProvider(
    /* reCAPTCHA Enterprise site key */
  ),
  true // Set to true to allow auto-refresh.
);

Следующие шаги

После установки библиотеки 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 с поставщиком отладки в веб-приложениях .

Примечание о стоимости

App Check создаёт оценку от вашего имени для проверки токена ответа пользователя каждый раз, когда браузер, на котором запущено ваше веб-приложение, обновляет свой токен App Check . С вашего проекта будет взиматься плата за каждую оценку, созданную сверх бесплатной квоты. Подробнее см. в ценах на reCAPTCHA .

По умолчанию ваше веб-приложение будет обновлять этот токен дважды в час . Чтобы контролировать частоту обновления токенов App Check (и, следовательно, частоту создания новых оценок), настройте их TTL .