Catch up on highlights from Firebase at Google I/O 2023. Learn more

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

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

reCAPTCHA Enterprise — это платная услуга с бесплатной квотой. Проверка приложений также поддерживает бесплатную услугу reCAPTCHA v3 . Чтобы узнать о различиях между reCAPTCHA v3 и reCAPTCHA Enterprise, см. сравнение функций .

Обратите внимание, что проверка приложений использует ключи сайта на основе оценок 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 может повлиять на производительность вашего приложения.
    • Квота и стоимость: более короткие TTL и частая повторная аттестация быстрее истощают вашу квоту, а платные услуги могут стоить дороже. См. Квоты и лимиты .

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

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

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

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

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

Web version 9

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 version 8

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.

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

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

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

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

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

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

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

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

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

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

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