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

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

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

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

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

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

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

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

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

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

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

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

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

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

3. Инициализировать проверку приложения

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

Web modular API

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 namespaced API

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 в ваше приложение разверните ее.

Обновленное клиентское приложение начнет отправлять токены проверки приложений вместе с каждым запросом, который оно отправляет в Firebase, но продукты Firebase не будут требовать, чтобы токены были действительными, пока вы не включите принудительное применение в разделе «Проверка приложений» консоли Firebase.

Отслеживайте показатели и обеспечивайте принудительное применение

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

Чтобы принять это решение, вы можете просмотреть показатели проверки приложений для используемых вами сервисов:

Включить принудительное выполнение проверки приложений

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

Используйте проверку приложений в средах отладки

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

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

Обратите внимание на стоимость

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

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