Sprawdzone metody produkcji

Google zaleca stosowanie tych sprawdzonych metod podczas administrowania aplikacją i jej uruchamiania.

Zabezpieczanie kluczy interfejsu API

Aby korzystać z naszych usług online, musisz mieć klucz interfejsu API, a jego użycie pozwoli Google mierzyć wykorzystanie. Zalecamy ograniczenie liczby kluczy interfejsu API, aby zapobiec nieautoryzowanemu użyciu.

Typy ograniczeń klucza interfejsu API

Istnieją 2 rodzaje ograniczeń dotyczących kluczy interfejsu API i można używać ich obu jednocześnie.

Typ ograniczeniaOgranicza użycie klucza do
Ograniczenie interfejsu API Konkretny interfejs API.
Ograniczenie aplikacji Konkretne adresy IP, witryny internetowe lub aplikacje

Rekomendacje dotyczące ograniczeń klucza interfejsu API

W tych scenariuszach zalecamy używanie oddzielnych kluczy interfejsu API.

ScenariuszRekomendacja
Serwery gier backendu wywołuje interfejs Playable Locations API, aby pobrać lokalizacje, w których można zagrać. Skonfiguruj klucz z 2 ograniczeniami:
  • Ograniczenie interfejsu API: zezwalaj tylko na wywołania interfejsu Playable Locations API.
  • Ograniczenie aplikacji: zezwalaj na połączenia wyłącznie z adresów IP serwera gry backendu.
Aby pobrać dane geograficzne, aplikacja na Androida wywołuje pakiet SDK Map Google dla Unity. Skonfiguruj klucz z ograniczeniem aplikacji, aby umożliwić połączenia tylko z tej wersji aplikacji na Androida.
Aby pobrać dane geograficzne, Twoja aplikacja na iOS wywołuje pakiet Maps SDK for Unity API. Skonfiguruj klucz z ograniczeniem aplikacji, aby umożliwić wywołania tylko z wersji aplikacji na iOS.

Więcej informacji znajdziesz w artykule o sprawdzonych metodach zabezpieczania interfejsów API.

Aby skonfigurować ograniczenia klucza interfejsu API

  1. Otwórz panel danych logowania w konsoli Google Cloud.
  2. Wybierz klucz interfejsu API, dla którego chcesz ustawić ograniczenie. Pojawi się strona właściwości klucza interfejsu API.
  3. W sekcji Ograniczenia kluczy kliknij kartę Ograniczenia aplikacji i wybierz jeden z czterech typów ograniczeń aplikacji.
    Typ ograniczenia Opis
    Odsyłające adresy HTTP Akceptuj żądania z podanej listy witryn.
    Adresy IP Akceptuj żądania z podanej listy adresów IP serwera WWW.
    Aplikacje na Androida Dodaj nazwę pakietu oraz odcisk cyfrowy certyfikatu podpisującego SHA-1, aby ograniczyć wykorzystanie aplikacji na Androida.
    Aplikacje na iOS Akceptuj żądania z aplikacji na iOS przy użyciu podanego przez Ciebie identyfikatora pakietu.
  4. W sekcji Ograniczenia kluczy wybierz kartę Ograniczenia interfejsów API, a potem wybierz interfejs API, do którego chcesz ograniczyć klucz interfejsu API.
  5. Kliknij Zapisz.

Aktualizacje kluczy interfejsu API pomocy

Sprawdź, czy masz infrastrukturę do aktualizowania kluczy interfejsów API w stosie udostępniania. Dzięki temu gra może zostać odzyskana, jeśli Twój klucz interfejsu API zostanie ujawniony, a Ty będzie trzeba jak najszybciej go odnowić.

Używaj oddzielnych kluczy dla każdej aplikacji, aby łatwo wymienić jeden klucz bez wpływu na inne aplikacje.

Rekomendacje dotyczące bezpieczeństwa serwera gier

Jeśli z jakiegokolwiek powodu serwer interfejsu Playable Locations API ulegnie awarii, problemy wystąpią po ponownym włączeniu połączenia, gdy kilka serwerów gier jednocześnie próbuje się z nim połączyć. Taki wzrost liczby QPS może wysłać serwer w tryb DoS, co dodatkowo nasila sytuację, blokując ruch przychodzący.

Aby rozwiązać tę sytuację, Google prosi o wdrożenie na serwerze gry dwukierunkowego ponawiania wykładniczego. To systematyczne podejście do ograniczania liczby ponownych prób połączenia. W szczególności implementujesz algorytm, który czeka N s po nieudanej próbie ponownego połączenia. Jeśli kolejna próba się nie powiedzie, algorytm podwoi okres oczekiwania i spróbuje jeszcze raz. Jeśli kolejna próba się nie powiedzie, algorytm podwaja okres oczekiwania i spróbuje jeszcze raz. Po każdej próbie podwajasz czas oczekiwania do momentu, aż zakończy się sukces.

Obsługa kodów stanu zwrotu HTTP

W przypadku niektórych kodów zwrotnych HTTP należy wdrożyć binarne ponawianie wykładnicze, ale nie wszystkie.

Lata 400
Są to błędy klienta, których zwykle nie można odzyskać, więc ponawianie nieudanych żądań, które generują ten kod błędu, nie zadziała. Tego rodzaju błędy należy wykrywać podczas testowania.
429
To jest błąd związany z wyczerpaniem zasobu, który występuje, gdy zaczynasz wyczerpywać limit interfejsu API. Aby sprawdzić limity zapytań na sekundę interfejsów API w Twoim projekcie, otwórz stronę Limity interfejsów API Google.
Lata 500.
Są to błędy po stronie serwera, czyli rodzaje błędów, w przypadku których przydaje się najwięcej wykładniczych błędów.