استفاده از App Check را با reCAPTCHA Enterprise در برنامه های وب شروع کنید

این صفحه به شما نشان می‌دهد که چگونه با استفاده از ارائه‌دهنده reCAPTCHA Enterprise، قابلیت App Check را در یک برنامه وب فعال کنید. وقتی App Check را فعال می‌کنید، اطمینان حاصل می‌کنید که فقط برنامه شما می‌تواند به منابع backend پروژه شما دسترسی داشته باشد. به نمای کلی این ویژگی مراجعه کنید.

توجه داشته باشید که App Check از کلیدهای سایت مبتنی بر امتیاز reCAPTCHA Enterprise استفاده می‌کند که آن را برای کاربران نامرئی می‌کند. ارائه‌دهنده reCAPTCHA Enterprise کاربران را ملزم به حل هیچ چالشی در هیچ زمانی نمی‌کند.

اگر مورد استفاده شما به ویژگی‌های reCAPTCHA Enterprise نیاز دارد که توسط App Check پیاده‌سازی نشده است، یا اگر می‌خواهید از App Check با ارائه‌دهنده سفارشی خود استفاده کنید، به بخش پیاده‌سازی ارائه‌دهنده سفارشی App Check مراجعه کنید.

۱. پروژه فایربیس خود را راه‌اندازی کنید

  1. اگر قبلاً Firebase را به پروژه جاوا اسکریپت خود اضافه نکرده‌اید، آن را اضافه کنید .

  2. بخش reCAPTCHA Enterprise را در کنسول Cloud باز کنید و موارد زیر را انجام دهید:

    1. اگر از شما خواسته شد که رابط برنامه‌نویسی کاربردی reCAPTCHA Enterprise را فعال کنید، این کار را انجام دهید.
    2. یک کلید از نوع وب‌سایت ایجاد کنید. باید دامنه‌هایی را که برنامه وب خود را روی آنها میزبانی می‌کنید، مشخص کنید. گزینه "استفاده از چالش تیک‌دار" را علامت نزنید .
  3. برنامه‌های خود را برای استفاده از App Check با ارائه‌دهنده reCAPTCHA Enterprise در بخش App Check کنسول Firebase ثبت کنید. شما باید کلید سایتی را که در مرحله قبل دریافت کرده‌اید، ارائه دهید.

    شما معمولاً باید تمام برنامه‌های پروژه خود را ثبت کنید، زیرا به محض اینکه اجرای قانون را برای یک محصول Firebase فعال کنید، فقط برنامه‌های ثبت شده می‌توانند به منابع backend محصول دسترسی داشته باشند.

  4. اختیاری : در تنظیمات ثبت برنامه، یک زمان ماندگاری (TTL) سفارشی برای توکن‌های App Check صادر شده توسط ارائه‌دهنده تنظیم کنید. می‌توانید TTL را روی هر مقداری بین 30 دقیقه تا 7 روز تنظیم کنید. هنگام تغییر این مقدار، به موارد زیر توجه داشته باشید:

    • امنیت: TTL های کوتاه تر امنیت قوی تری را فراهم می کنند، زیرا بازه زمانی که یک توکن فاش شده یا رهگیری شده می تواند توسط یک مهاجم مورد سوء استفاده قرار گیرد را کاهش می دهند.
    • عملکرد: هرچه TTL های کوتاه‌تر باشند، برنامه شما دفعات بیشتری عملیات تصدیق را انجام می‌دهد. از آنجایی که فرآیند تصدیق برنامه هر بار که انجام می‌شود، به درخواست‌های شبکه تأخیر اضافه می‌کند، TTL کوتاه می‌تواند بر عملکرد برنامه شما تأثیر بگذارد.
    • سهمیه و هزینه: TTL های کوتاه تر و تأیید مجدد مکرر، سهمیه شما را سریعتر تمام می کند و برای خدمات پولی، احتمالاً هزینه بیشتری دارد. به سهمیه ها و محدودیت ها مراجعه کنید.

    مدت زمان پیش‌فرض TTL برای اکثر برنامه‌ها ۱ ساعت است که معقول به نظر می‌رسد. توجه داشته باشید که کتابخانه App Check تقریباً در نصف مدت زمان TTL، توکن‌ها را به‌روزرسانی می‌کند.

پیکربندی تنظیمات پیشرفته (اختیاری)

وقتی کاربری از برنامه وب شما بازدید می‌کند، reCAPTCHA Enterprise سطح ریسک تعامل کاربر را ارزیابی می‌کند و امتیازی بین 0.0 تا 1.0 را با گام‌های 0.1 برمی‌گرداند. امتیاز 1.0 نشان می‌دهد که تعامل ریسک کمی دارد و به احتمال زیاد قانونی است، در حالی که 0.0 نشان می‌دهد که تعامل ریسک بالایی دارد و ممکن است جعلی باشد. App Check به شما امکان می‌دهد آستانه ریسک برنامه را پیکربندی کنید تا بتوانید تحمل خود را برای این ریسک تنظیم کنید.

برای اکثر موارد استفاده، مقدار آستانه پیش‌فرض ۰.۵ توصیه می‌شود. اگر مورد استفاده شما نیاز به تنظیم دارد، می‌توانید آن را در بخش App Check کنسول Firebase برای هر یک از برنامه‌های وب خود پیکربندی کنید.

جزئیات

App Check از آستانه ریسک برنامه پیکربندی‌شده شما به عنوان حداقل امتیاز reCAPTCHA Enterprise مورد نیاز برای مشروع تلقی شدن یک تعامل کاربری استفاده می‌کند. تمام امتیازات reCAPTCHA Enterprise که کاملاً کمتر از آستانه پیکربندی‌شده شما باشند، رد خواهند شد. هنگام تنظیم آستانه ریسک برنامه خود، به موارد زیر توجه داشته باشید:

  • از بین ۱۱ سطح امتیاز reCAPTCHA Enterprise ممکن، فقط چهار سطح امتیاز زیر قبل از اضافه کردن حساب Google Cloud Billing به پروژه شما در دسترس هستند: ۰.۱، ۰.۳، ۰.۷ و ۰.۹. در این مدت، App Check به طور مشابه فقط مقادیر آستانه ریسک برنامه ۰.۱، ۰.۳، ۰.۵، ۰.۷ و ۰.۹ را مجاز می‌داند. مقدار آستانه ریسک برنامه ۰.۵ هنوز برای اکثر موارد استفاده توصیه می‌شود.

    • برای فعال کردن هر 11 سطح امتیاز reCAPTCHA Enterprise، یک حساب Google Cloud Billing به پروژه خود اضافه کنید. یکی از راه‌های انجام این کار، ارتقاء به طرح قیمت‌گذاری Blaze است. پس از انجام این کار، App Check به شما امکان می‌دهد مقادیر آستانه ریسک برنامه را بین 0.0 و 1.0، با گام‌های 0.1، پیکربندی کنید.

  • برای نظارت بر توزیع نمرات بالا و پایین reCAPTCHA Enterprise برای برنامه وب خود، از صفحه reCAPTCHA Enterprise در کنسول Google Cloud بازدید کنید و کلید سایت مورد استفاده برنامه وب خود را انتخاب کنید.

  • اگر تحمل ریسک برنامه کمی دارید، نوار لغزنده را به سمت چپ حرکت دهید تا آستانه ریسک برنامه افزایش یابد.

    • مقدار ۱.۰ توصیه نمی‌شود، زیرا این تنظیم می‌تواند به طور بالقوه دسترسی کاربران قانونی که این آستانه اعتماد بالا را برآورده نمی‌کنند را نیز مسدود کند.
  • اگر تحمل ریسک بالایی برای برنامه دارید، نوار لغزنده را به سمت راست حرکت دهید تا آستانه ریسک برنامه کاهش یابد.

    • مقدار ۰.۰ توصیه نمی‌شود، زیرا این تنظیم محافظت در برابر سوءاستفاده را غیرفعال می‌کند.

برای جزئیات بیشتر به مستندات reCAPTCHA Enterprise مراجعه کنید.

۲. کتابخانه App Check را به برنامه خود اضافه کنید

اگر هنوز Firebase را به برنامه وب خود اضافه نکرده‌اید، آن را اضافه کنید . حتماً کتابخانه App Check را وارد کنید.

۳. App Check

قبل از دسترسی به هرگونه سرویس Firebase، کد اولیه زیر را به برنامه خود اضافه کنید. برای activate() باید کلید سایت reCAPTCHA Enterprise خود را که در کنسول Cloud ایجاد کرده‌اید، ارسال کنید.

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 در برنامه خود، آن را مستقر کنید.

برنامه کلاینت به‌روزرسانی‌شده، همراه با هر درخواستی که به Firebase ارسال می‌کند، شروع به ارسال توکن‌های App Check می‌کند، اما محصولات 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 آنها را پیکربندی کنید .