Google zaleca stosowanie tych sprawdzonych metod podczas administrowania i uruchamiania aplikacji.
Zabezpieczanie kluczy interfejsu API
Aby korzystać z naszych usług online, potrzebujesz klucza interfejsu API, a jego użycie pozwala Google mierzyć Twoje wykorzystanie. Zalecamy ograniczenie kluczy interfejsu API, aby zapobiec nieautoryzowanemu użyciu.
Typy ograniczeń klucza interfejsu API
Istnieją 2 typy ograniczeń klucza interfejsu API i możesz używać ich obu jednocześnie.
Typ ograniczenia | Ogranicza użycie klucza do |
---|---|
Ograniczenie interfejsu API | Interfejs API. |
Ograniczenie aplikacji | Określone adresy IP, witryny lub aplikacje. |
Rekomendacje dotyczące ograniczeń klucza interfejsu API
W tych przypadkach zalecamy utworzenie oddzielnych kluczy interfejsu API.
Scenariusz | Rekomendacja |
---|---|
Serwery gier zaplecza wywołują interfejs Playable Location API, aby pobrać lokalizacje do odtworzenia. | Skonfiguruj klucz z 2 ograniczeniami:
|
Wersja aplikacji na Androida wywołuje pakiet SDK Map dla Unity, aby pobrać dane geograficzne. | Skonfiguruj klucz z ograniczeniem dotyczącym aplikacji, aby umożliwić wywołania tylko z jej wersji. |
Wersja aplikacji na iOS wywołuje interfejs API pakietu Maps SDK for Unity, aby pobrać dane geograficzne. | Skonfiguruj klucz z ograniczeniem aplikacji, aby umożliwić wywołania tylko z wersji aplikacji na iOS. |
Więcej informacji znajdziesz w artykule Sprawdzone metody zabezpieczania interfejsu API.
Aby skonfigurować ograniczenia klucza interfejsu API
- Otwórz panel danych logowania w Google Cloud Console.
- Wybierz klucz interfejsu API, dla którego chcesz ustawić ograniczenie. Pojawi się strona właściwości klucza interfejsu API.
- W sekcji Ograniczenia klucza wybierz kartę Ograniczenia aplikacji, a następnie wybierz jeden z 4 typów ograniczeń aplikacji.
Typ ograniczenia Opis Odsyłające adresy HTTP Zaakceptuj prośby z listy podanych przez Ciebie witryn. Adresy IP Akceptuj żądania z listy adresów IP serwera WWW, które udostępniasz. Aplikacje na Androida Dodaj nazwę pakietu oraz odcisk cyfrowy certyfikatu podpisywania SHA-1, aby ograniczyć wykorzystanie aplikacji na Androida. Aplikacje na iOS Akceptuj żądania od aplikacji na iOS z podanym przez Ciebie identyfikatorem pakietu. - W sekcji Ograniczenia klucza wybierz kartę Ograniczenia interfejsu API i wybierz interfejs API, do którego chcesz ograniczyć klucz interfejsu API.
- Kliknij Zapisz.
Aktualizacje klucza interfejsu API pomocy
Sprawdź, czy masz infrastrukturę, która może aktualizować klucze interfejsu API w stosie udostępniania. Dzięki temu Twoja gra może się odzyskać, jeśli klucz interfejsu API zostanie przejęty i w krótkim czasie będzie trzeba go odnowić.
Dla każdej aplikacji używaj oddzielnych kluczy, aby móc łatwo zmieniać klucz w jednym, nie wpływając na inne aplikacje.
Rekomendacje dotyczące bezpieczeństwa serwera gry
Gdy serwer interfejsu Playable Location API jest niedostępny z dowolnego powodu, występują problemy, gdy powróci on online – gdy wiele serwerów gier spróbuje ponownie połączyć się z internetem w tym samym czasie. Taki gwałtowny wzrost QPS może spowodować przekierowanie serwera w tryb DoS, co dodatkowo komplikuje sytuację, blokując ruch przychodzący.
Aby przeciwdziałać takiej sytuacji, Google prosi o wdrożenie na serwerze gry wywoływania plików binarnych wykładniczo. To systematyczne podejście do ograniczania prób nawiązania połączenia. Przede wszystkim musisz wdrożyć algorytm, który czeka N sekund po kolejnej nieudanej próbie ponownego połączenia. Jeśli kolejna próba się nie powiedzie, algorytm podwaja okres oczekiwania i spróbuje jeszcze raz. Jeśli kolejna próba się nie powiedzie, algorytm ponownie podwoi okres oczekiwania, a potem spróbuje jeszcze raz. Podwajaj okres oczekiwania po każdej próbie aż do ostatniej próby.
Obsługa kodów stanu zwrotów HTTP
W przypadku niektórych kodów zwrotnych HTTP należy wdrożyć funkcję wzrastającego czasu do ponowienia w postaci plików binarnych, ale nie wszystkie.
- 400
- To błędy klientów, które zwykle nie przywracają się, więc ponowne próby nieudanego żądania, które generują te kody błędów, nie będą działać. Takie błędy powinny być wykrywane podczas testowania.
- 429
- To jest błąd wyczerpania zasobów, który występuje, gdy zaczyna Ci brakować miejsca na API. Aby zobaczyć limity zapytań QPS dla Twojego projektu, otwórz limity interfejsów API Google.
- 500s
- Są to błędy po stronie serwera – w takiej sytuacji najbardziej przydatny jest wzrastający wykładnik.