Google توصیه میکند هنگام مدیریت و اجرای برنامه خود، این بهترین شیوهها را دنبال کنید.
ایمن کردن کلیدهای API
برای استفاده از خدمات آنلاین ما به یک کلید API نیاز دارید و استفاده از آن به Google اجازه می دهد میزان استفاده شما را اندازه گیری کند. توصیه می کنیم برای جلوگیری از استفاده غیرمجاز، کلیدهای API خود را محدود کنید.
انواع محدودیت های کلید API
دو نوع محدودیت کلید API وجود دارد و می توانید همزمان از هر دو استفاده کنید.
نوع محدودیت | استفاده از کلید را محدود می کند |
---|---|
محدودیت API | یک API خاص |
محدودیت برنامه | آدرس های IP خاص، وب سایت ها یا برنامه ها. |
توصیه های محدودیت کلید API
توصیه می کنیم برای سناریوهای زیر کلیدهای API جداگانه را سفارش دهید.
سناریو | توصیه |
---|---|
سرورهای بازی بکاند شما API مکانهای قابل پخش را برای بازیابی مکانهای قابل پخش فراخوانی میکنند. | یک کلید را با دو محدودیت پیکربندی کنید:
|
نسخه اندروید برنامه شما Maps SDK for Unity را برای بازیابی داده های جغرافیایی فراخوانی می کند. | کلیدی را با محدودیت برنامه پیکربندی کنید تا فقط از نسخه Android برنامه خود تماس بگیرید. |
نسخه iOS برنامه شما Maps SDK for Unity API را برای بازیابی داده های جغرافیایی فراخوانی می کند. | کلیدی را با محدودیت برنامه پیکربندی کنید تا فقط از نسخه iOS برنامه خود تماس بگیرید. |
برای اطلاعات بیشتر، بهترین شیوه های امنیتی API را ببینید.
برای تنظیم محدودیت های کلید API
- از پانل اعتبارنامه در Google Cloud Console دیدن کنید.
- کلید API را که می خواهید محدودیتی روی آن تنظیم کنید، انتخاب کنید. صفحه ویژگی کلید API ظاهر می شود.
- در زیر کلید محدودیتها ، برگه محدودیتهای برنامه را انتخاب کنید و سپس یکی از چهار نوع محدودیت برنامه را انتخاب کنید.
نوع محدودیت شرح ارجاع دهنده های HTTP درخواست های لیست وب سایت هایی را که ارائه می کنید بپذیرید. آدرس های IP درخواستها را از لیست آدرسهای IP سرور وب که ارائه میکنید بپذیرید. برنامه های اندروید نام بسته و اثر انگشت گواهی امضای SHA-1 را اضافه کنید تا استفاده را به برنامه Android خود محدود کنید. برنامه های iOS درخواستهای برنامه iOS را با شناسه بستهای که ارائه میکنید بپذیرید. - در زیر کلید محدودیتها ، برگه محدودیتهای API را انتخاب کنید و سپس API را انتخاب کنید که میخواهید کلید API خود را به آن محدود کنید.
- روی ذخیره کلیک کنید.
پشتیبانی از به روز رسانی های کلید API
اطمینان حاصل کنید که زیرساختی برای به روز رسانی کلیدهای API در سراسر پشته سرویس خود دارید. به این ترتیب، اگر کلید API شما به خطر بیفتد، بازی شما میتواند بازیابی شود و باید در کوتاهمدت آن را تمدید کنید.
از کلیدهای جداگانه برای هر برنامه استفاده کنید، بنابراین می توانید به راحتی یک کلید را بدون تأثیر بر سایر برنامه ها تغییر دهید.
توصیه های ایمنی سرور بازی
وقتی سرور Playable Locations API به هر دلیلی با قطعی مواجه میشود، وقتی دوباره آنلاین میشود، مشکلاتی رخ میدهد - زمانی که چندین سرور بازی همزمان تلاش میکنند دوباره به آن متصل شوند. چنین ضربهای QPS میتواند سرور را به حالت DoS بفرستد، که با مسدود کردن ترافیک ورودی، وضعیت را تشدید میکند.
برای کاهش این وضعیت، گوگل از شما می خواهد که Binary Exponential Back-off را در سرور بازی خود پیاده سازی کنید. این یک رویکرد سیستماتیک برای از بین بردن فاصله بین تلاش های مجدد اتصال شما است. به طور خاص، شما باید الگوریتمی را اجرا کنید که N ثانیه پس از تلاش برای اتصال مجدد ناموفق قبل از تلاش مجدد منتظر می ماند. اگر تلاش بعدی با شکست مواجه شد، الگوریتم شما مدت زمان انتظار را دو برابر می کند و سپس دوباره تلاش می کند. اگر تلاش بعدی با شکست مواجه شد، الگوریتم شما دوباره دوره انتظار را دو برابر می کند و سپس دوباره تلاش می کند. شما به دو برابر کردن دوره انتظار پس از هر تلاش ادامه می دهید - تا زمانی که آخرین تلاش شما موفق شود.
مدیریت کدهای وضعیت بازگشت HTTP
شما باید برای برخی از کدهای بازگشتی HTTP، اما نه همه آنها، پشتیبان نمایی باینری را پیاده سازی کنید.
- دهه 400
- اینها خطاهای مشتری هستند که معمولاً بازیابی نمیشوند، بنابراین تلاش مجدد درخواستهای ناموفق که این کدهای خطا را تولید میکنند، کارساز نخواهد بود. شما باید این نوع خطاها را در طول آزمایش تشخیص دهید.
- 429
- این یک خطای اتمام منابع است که زمانی رخ می دهد که شما شروع به اتمام سهمیه API می کنید. برای مشاهده محدودیتهای API QPS پروژه خود، از Google APIs Quotas دیدن کنید.
- دهه 500
- اینها خطاهای سمت سرور هستند—نوعی از خطاهایی که عقب نشینی نمایی بیشتر برای آنها مفید است.