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 ograniczenia | Ogranicza 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.
Scenariusz | Rekomendacja |
---|---|
Serwery gier backendu wywołuje interfejs Playable Locations API, aby pobrać lokalizacje, w których można zagrać. | Skonfiguruj klucz z 2 ograniczeniami:
|
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
- Otwórz panel danych logowania w konsoli Google Cloud.
- Wybierz klucz interfejsu API, dla którego chcesz ustawić ograniczenie. Pojawi się strona właściwości klucza interfejsu API.
- 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. - W sekcji Ograniczenia kluczy wybierz kartę Ograniczenia interfejsów API, a potem wybierz interfejs API, do którego chcesz ograniczyć klucz interfejsu API.
- 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.