Wskazówki dotyczące bezpieczeństwa Google Maps Platform

Aplikacje i projekty, które korzystają z interfejsów API i pakietów SDK Google Maps Platform, muszą używać kluczy interfejsu API lub, jeśli jest to obsługiwane, protokołu OAuth 2.0 do uwierzytelniania.

Te sprawdzone metody pokazują, jak zabezpieczyć dostęp do Maps Platform.

Jeśli chcesz używać protokołu OAuth 2.0 do autoryzacji ruchu między serwerami, poszukaj tematu dotyczącego protokołu OAuth w dokumentacji interfejsu API. Więcej informacji znajdziesz w artykule o używaniu protokołu OAuth w aplikacjach po stronie serwera.

Oprócz stosowania ograniczeń dotyczących aplikacji i kluczy interfejsu API postępuj zgodnie ze wszystkimi praktykami dotyczącymi bezpieczeństwa, które mają zastosowanie do konkretnych usług Google Maps Platform. Zobacz na przykład Maps JavaScript API poniżej w sekcji Zalecane ograniczenia dotyczące aplikacji i interfejsów API.

Jeśli klucze interfejsu API są już używane, zapoznaj się z zaleceniami poniżej w sekcji Jeśli ograniczasz klucz interfejsu API, który jest używany.

Więcej informacji o podpisach cyfrowych obsługiwanych przez interfejsy Maps Static API i Street View Static API znajdziesz w przewodniku po podpisach cyfrowych.

Zalecane sprawdzone metody

Aby zwiększyć bezpieczeństwo i uniknąć naliczania opłat za nieautoryzowane użycie, postępuj zgodnie z tymi sprawdzonymi metodami dotyczącymi bezpieczeństwa interfejsów API w przypadku wszystkich interfejsów API, pakietów SDK i usług Google Maps Platform:

Ogranicz klucze interfejsu API

Używanie oddzielnych kluczy interfejsu API w każdej aplikacji

Usuwanie nieużywanych kluczy interfejsu API

Sprawdzanie użycia klucza interfejsu API

Zachowaj ostrożność podczas rotacji kluczy interfejsu API

Podział wykorzystania po stronie klienta i po stronie serwera na osobne projekty

Wyłączanie nieużywanych usług

Dodatkowe zalecenia dotyczące aplikacji po stronie klienta

Korzystanie z pakietów SDK po stronie klienta

Bezpieczne wywołania usług internetowych po stronie klienta

Dodatkowe zalecenia dotyczące witryn i aplikacji po stronie klienta korzystających ze statycznych interfejsów API sieci Web

Ochrona korzystania z interfejsu Static Web API

Dodatkowe zalecenia dotyczące aplikacji po stronie serwera korzystających z usług internetowych

Ochrona kluczy interfejsu API usługi internetowej

Używanie protokołu OAuth w aplikacjach po stronie serwera

Jeśli ograniczasz lub rotujesz klucz interfejsu API, który jest używany

  • Zanim zmienisz klucz interfejsu API, sprawdź jego użycie. Ten krok jest szczególnie ważny, jeśli dodajesz ograniczenia do klucza, który jest już używany w aplikacji produkcyjnej.

  • Po zmianie klucza zaktualizuj wszystkie aplikacje, używając nowych kluczy interfejsu API.

  • Jeśli klucz interfejsu API nie został przejęty i nie jest aktywnie nadużywany, możesz we własnym tempie przenieść aplikacje na wiele nowych kluczy interfejsu API, pozostawiając oryginalny klucz interfejsu API bez zmian, dopóki nie będziesz obserwować tylko jednego typu ruchu. Wtedy klucz interfejsu API będzie można bezpiecznie ograniczyć za pomocą jednego typu ograniczeń aplikacji bez powodowania niezamierzonych przerw w działaniu usługi.

    Dalsze instrukcje znajdziesz w artykule Migracja do wielu kluczy interfejsu API.

    Zanim zdecydujesz się ograniczyć lub usunąć stary klucz, monitoruj wykorzystanie w czasie i sprawdź, kiedy konkretne interfejsy API, typy platform i domeny zostały przeniesione ze starego klucza interfejsu API. Więcej informacji znajdziesz w artykułach Raportowanie i monitorowanie oraz Wskaźniki.

  • Jeśli Twój klucz interfejsu API został przejęty, musisz jak najszybciej go zabezpieczyć i powstrzymać nadużycia. W aplikacjach na Androida i iOS klucze nie są zastępowane, dopóki klienci nie zaktualizują aplikacji. Aktualizowanie lub zastępowanie kluczy na stronach internetowych lub w aplikacjach po stronie serwera jest znacznie prostsze, ale może wymagać starannego planowania i szybkiego działania.

    Więcej informacji znajdziesz w artykule Postępowanie w przypadku nieautoryzowanego użycia klucza interfejsu API.

Więcej informacji

Zalecane ograniczenia dotyczące aplikacji i interfejsów API

Ogranicz klucze interfejsu API

Zgodnie ze sprawdzonymi metodami zawsze należy ograniczać klucze interfejsu API za pomocą jednego typu ograniczeń aplikacji i co najmniej jednego ograniczenia interfejsu API. Sugerowane ograniczenia dotyczące interfejsu API, pakietu SDK lub usługi JavaScript znajdziesz poniżej w sekcji Zalecane ograniczenia aplikacji i interfejsów API.

  • Ograniczenia aplikacji Możesz ograniczyć użycie klucza interfejsu API do określonych platform: aplikacji na Androida lub iOS, określonych witryn w przypadku aplikacji po stronie klienta albo określonych adresów IP lub podsieci CIDR w przypadku aplikacji po stronie serwera, które wysyłają wywołania interfejsu API typu REST usługi internetowej.

    Klucz możesz ograniczyć, dodając co najmniej jedno ograniczenie aplikacji dla typów, które chcesz autoryzować. Po wykonaniu tej czynności dozwolone będą tylko żądania pochodzące z tych źródeł.

  • Ograniczenia interfejsu API: możesz ograniczyć interfejsy API, pakiety SDK lub usługi Google Maps Platform, w których można używać Twojego klucza interfejsu API. Ograniczenia interfejsów API zezwalają tylko na żądania do określonych przez Ciebie interfejsów API i pakietów SDK. Dla każdego klucza interfejsu API możesz określić dowolną liczbę ograniczeń. Lista dostępnych interfejsów API obejmuje wszystkie interfejsy API włączone w projekcie.

Ustawianie ograniczenia aplikacji dla klucza interfejsu API

  1. W konsoli Google Cloud otwórz stronę Dane logowania Google Maps Platform.

  2. Wybierz klucz interfejsu API, który chcesz ograniczyć.

  3. Na stronie Edytuj klucz interfejsu API w sekcji Ograniczenia kluczy wybierz Ustaw ograniczenie aplikacji.

    Strona edytowania klucza interfejsu API

  4. Wybierz jeden z typów ograniczeń i podaj wymagane informacje zgodnie z listą ograniczeń.

    Typ ograniczenia Opis
    Witryny Określ co najmniej 1 witrynę odsyłającą.
    • Uniwersalnie obsługiwane schematy URI strony odsyłającej to https i http. Nie gwarantujemy, że inne schematy będą działać prawidłowo, ponieważ ze względu na ochronę prywatności nowoczesne przeglądarki nie wysyłają nagłówka „Referer” w żądaniach wychodzących.
    • Zawsze podawaj cały ciąg znaków strony odsyłającej, w tym schemat protokołu, nazwę hosta i opcjonalny port (np. https://google.com).
    • Możesz użyć symboli wieloznacznych, aby autoryzować wszystkie subdomeny. Na przykład https://*.google.com akceptuje wszystkie witryny kończące się na .google.com.
    • Zachowaj ostrożność podczas autoryzowania stron odsyłających z pełną ścieżką, np. https://google.com/some/path, ponieważ większość przeglądarek ze względów prywatności usuwa ścieżkę z żądań współdzielenia.
    Adresy IP Podaj co najmniej 1 adres IPv4 lub IPv6 albo podsieć w notacji CIDR. Adresy IP muszą być zgodne z adresem źródłowym, który widzą serwery Google Maps Platform. Jeśli używasz translacji adresów sieciowych (NAT), ten adres zwykle odpowiada publicznemu adresowi IP Twojego komputera.
    Aplikacje na Androida

    Dodaj nazwę pakietu na Androida (z pliku AndroidManifest.xml) i odcisk cyfrowy certyfikatu podpisującego SHA-1 każdej aplikacji na Androida, którą chcesz autoryzować.

    1. Wybierz Aplikacje na Androida.
    2. Kliknij + Dodaj.
    3. Wpisz nazwę pakietu i odcisk cyfrowy certyfikatu SHA-1. Na przykład:
      com.example.android.mapexample
      BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75
    4. Kliknij Zapisz.

    Istnieją 2 typy certyfikatów:

    • Certyfikat debugowania: używaj tego typu certyfikatu tylko w przypadku aplikacji, które testujesz, i innego kodu nieprodukcyjnego. Nie próbuj publikować aplikacji podpisanej certyfikatem debugowania. Narzędzia Android SDK generują ten certyfikat automatycznie, gdy uruchamiasz kompilację do debugowania.
    • Certyfikat wersji: użyj tego certyfikatu, gdy aplikacja będzie gotowa do opublikowania w sklepie z aplikacjami. Narzędzia Android SDK generują ten certyfikat, gdy uruchamiasz kompilację do publikacji.

    Więcej informacji o podpisywaniu aplikacji na Androida i certyfikatach znajdziesz w przewodniku po podpisywaniu aplikacji.

    Jeśli używasz podpisywania aplikacji przez Google Play, informacje o tym, jak pobrać odcisk cyfrowy certyfikatu podpisywania, znajdziesz w artykule Współpraca z dostawcami interfejsów API. Jeśli zarządzasz własnym kluczem podpisywania, zapoznaj się z artykułem Samodzielne podpisywanie aplikacji lub instrukcjami dotyczącymi środowiska kompilacji.

    Aplikacje na iOS

    Dodaj identyfikator pakietu każdej aplikacji na iOS, którą chcesz autoryzować.

    1. Wybierz Aplikacje na iOS.
    2. Kliknij + Dodaj.
    3. Dodaj identyfikator pakietu, aby akceptować żądania z aplikacji na iOS o tym identyfikatorze.
    4. Kliknij Zapisz.

    Zalecenia dotyczące ograniczeń aplikacji znajdziesz w artykule Zalecane ograniczenia aplikacji.

  5. Kliknij Zapisz.

Ustawianie ograniczeń interfejsu API dla klucza interfejsu API

  1. W konsoli Google Cloud otwórz stronę Dane logowania Google Maps Platform.

  2. Wybierz klucz interfejsu API, który chcesz ograniczyć.

  3. Na stronie Edytuj klucz interfejsu API w sekcji Ograniczenia interfejsów API:

    • Wybierz Ogranicz klucz.

    • Otwórz Wybierz interfejsy API i wybierz interfejsy API lub pakiety SDK, do których aplikacja ma mieć dostęp za pomocą klucza interfejsu API.

    Jeśli interfejs API lub pakiet SDK nie jest wymieniony, musisz go włączyć. Więcej informacji znajdziesz w sekcji Włączanie interfejsów API lub pakietów SDK.

    Ograniczanie interfejsu API na stronie Edytuj klucz interfejsu API

  4. Kliknij Zapisz.

    Po wykonaniu tego kroku ograniczenie stanie się częścią definicji klucza interfejsu API. Podaj odpowiednie informacje i kliknij Zapisz, aby zapisać ograniczenia klucza interfejsu API. Więcej informacji znajdziesz w przewodniku Uzyskiwanie klucza interfejsu API w dokumentacji konkretnego interfejsu API lub pakietu SDK, który Cię interesuje.

Zalecane ograniczenia interfejsów API znajdziesz w artykule Zalecane ograniczenia interfejsów API.

Sprawdzanie użycia klucza interfejsu API

Jeśli ograniczasz klucze interfejsu API po ich utworzeniu lub chcesz zobaczyć, które interfejsy API są używane przez klucz, aby móc je ograniczyć, sprawdź użycie klucza interfejsu API. Te kroki pokazują, w których usługach i metodach interfejsu API jest używany klucz interfejsu API. Jeśli zauważysz użycie poza usługami Google Maps Platform, sprawdź, czy nie musisz dodać więcej ograniczeń, aby uniknąć niepożądanego użycia. Możesz użyć Eksploratora danych konsoli Cloud Google Maps Platform, aby określić, które ograniczenia interfejsu API i aplikacji chcesz zastosować do klucza interfejsu API:

Określanie interfejsów API, które używają Twojego klucza interfejsu API

Te raporty ze wskaźnikami pozwalają określić, które interfejsy API używają Twoich kluczy interfejsu API. Dzięki tym raportom możesz:

  • Sprawdzanie, jak używane są klucze interfejsu API
  • Wykrywanie nieoczekiwanego wykorzystania
  • Pomóż sprawdzić, czy nieużywany klucz można bezpiecznie usunąć. Informacje o usuwaniu klucza interfejsu API znajdziesz w artykule na temat usuwania nieużywanych kluczy interfejsu API.

Podczas stosowania ograniczeń interfejsów API używaj tych raportów do tworzenia listy interfejsów API do autoryzacji lub do sprawdzania automatycznie generowanych rekomendacji dotyczących ograniczeń kluczy interfejsów API. Więcej informacji o zalecanych ograniczeniach znajdziesz w artykule Stosowanie zalecanych ograniczeń. Więcej informacji o korzystaniu z narzędzia Metrics Explorer znajdziesz w artykule Tworzenie wykresów za pomocą narzędzia Metrics Explorer.

  1. Otwórz Eksplorator danych w konsoli Google Cloud.

  2. Zaloguj się i wybierz projekt, którego klucze interfejsu API chcesz sprawdzić.

  3. Otwórz stronę Metrics Explorer dla swojego typu interfejsu API:

    • W przypadku kluczy interfejsu API korzystających z dowolnego interfejsu API z wyjątkiem Maps Embed API: otwórz stronę Eksplorator danych.

    • Klucze interfejsu API korzystające z Maps Embed API: otwórz Eksplorator danych.

  4. Sprawdź każdy klucz interfejsu API:

    1. Kliknij DODAJ FILTR.

    2. Wybierz etykietę credential_id.

    3. Wybierz wartość odpowiadającą kluczowi, który chcesz sprawdzić.

    4. Zwróć uwagę, w przypadku których interfejsów API jest używany ten klucz interfejsu API, i potwierdź, że jest to zgodne z oczekiwaniami.

    5. Gdy skończysz, kliknij Usuń filtr na końcu wiersza aktywnego filtra, aby usunąć dodatkowy filtr.

  5. Powtórz te czynności w przypadku pozostałych kluczy.

  6. Ogranicz klucze interfejsu API tylko do tych interfejsów API, które są używane.

  7. Jeśli zauważysz nieautoryzowane użycie, zapoznaj się z artykułem Postępowanie w przypadku nieautoryzowanego użycia klucza interfejsu API.

Wybierz odpowiedni typ ograniczenia aplikacji za pomocą Metrics Explorer.

Po sprawdzeniu i wykonaniu wszystkich niezbędnych działań, aby upewnić się, że klucz interfejsu API jest używany tylko w usługach Google Maps Platform, sprawdź też, czy klucz interfejsu API ma prawidłowe ograniczenia aplikacji.

Jeśli klucz interfejsu API ma zalecane ograniczenia, zastosuj je. Więcej informacji znajdziesz w artykule o stosowaniu zalecanych ograniczeń klucza interfejsu API.

Jeśli klucz interfejsu API nie ma rekomendacji dotyczących ograniczeń, określ typ ograniczenia aplikacji, które chcesz zastosować, na podstawie zgłoszonego platform_type za pomocą Eksploratora danych:

  1. Otwórz Eksplorator danych w konsoli Google Cloud.

  2. Zaloguj się i wybierz projekt, którego interfejsy API chcesz sprawdzić.

  3. Otwórz stronę narzędzia Metrics Explorer: Metrics Explorer.

  4. Sprawdź każdy klucz interfejsu API:

    1. Kliknij DODAJ FILTR.

    2. Wybierz etykietę credential_id.

    3. Wybierz wartość odpowiadającą kluczowi, który chcesz sprawdzić.

    4. Gdy skończysz, kliknij Usuń filtr na końcu wiersza aktywnego filtra, aby usunąć dodatkowy filtr.

  5. Powtórz te czynności w przypadku pozostałych kluczy.

  6. Gdy poznasz typ platformy dla kluczy interfejsu API, zastosuj ograniczenie aplikacji dla tego platform_type:

    PLATFORM_TYPE_JS : zastosuj ograniczenia dotyczące witryn do klucza.

    PLATFORM_TYPE_ANDROID : zastosuj do klucza ograniczenia dotyczące aplikacji na Androida.

    PLATFORM_TYPE_IOS : zastosuj ograniczenia aplikacji na iOS do klucza.

    PLATFORM_TYPE_WEBSERVICE: być może trzeba będzie polegać na ograniczeniach klucza dotyczących adresu IP, aby prawidłowo go ograniczyć.

    Zalecenia dotyczące interfejsów Maps Static API i Street View Static API znajdziesz w artykule Ochrona korzystania ze statycznych interfejsów API do stron internetowych.

    Zalecenia dotyczące interfejsu Maps Embed API znajdziesz w artykule Witryny z interfejsem Maps Embed API.

    Mój klucz interfejsu API używa wielu typów platform: ruchu nie można odpowiednio zabezpieczyć za pomocą tylko jednego klucza interfejsu API. Musisz przejść na wiele kluczy interfejsu API. Więcej informacji znajdziesz w artykule o migracji do wielu kluczy interfejsu API.

Używaj osobnych kluczy interfejsu API dla każdej aplikacji.

Ogranicza to zakres każdego klucza. Jeśli jeden klucz interfejsu API zostanie przejęty, możesz go usunąć lub zmienić bez konieczności aktualizowania pozostałych. Możesz utworzyć maksymalnie 300 kluczy interfejsu API na projekt. Więcej informacji znajdziesz w artykule o limitach kluczy interfejsu API.

Ze względów bezpieczeństwa najlepiej jest używać jednego klucza interfejsu API na aplikację, ale możesz używać kluczy z ograniczeniami w wielu aplikacjach, o ile mają one ten sam typ ograniczenia aplikacji.

Stosowanie zalecanych ograniczeń klucza interfejsu API

W przypadku niektórych właścicieli projektów, edytorów i administratorów kluczy interfejsu API konsola Google Cloud sugeruje określone ograniczenia kluczy interfejsu API bez ograniczeń na podstawie wykorzystania i aktywności w Google Maps Platform.

Jeśli rekomendacje są dostępne, pojawiają się jako wstępnie wypełnione opcje na stronie Dane logowania Google Maps Platform.

Interfejsy API i pakiety SDK Google Maps Platform obsługiwane przez automatyczne rekomendacje

  • Maps JavaScript API, w tym: Directions Service (starsza wersja), Distance Matrix Service (starsza wersja), Elevation Service, Geocoding Service, klasa Place, widżet Place Autocomplete (nowy), Place Autocomplete Data API, biblioteka Miejsc, Places Service, widżet Place Autocomplete, Places UI Kit.

  • Maps Static API i Street View Static API

  • Maps Embed API

  • Maps SDK na Androida, Navigation SDK na Androida, Places SDK na Androida i Places UI Kit na Androida

  • Maps SDK na iOS, Navigation SDK na iOS, Places SDK na iOS, Places Swift SDK na iOS i Places UI Kit na iOS.

Dlaczego możesz nie widzieć rekomendacji lub widzieć niepełną rekomendację

Powody, dla których nie widzisz rekomendacji

  • Używasz klucza interfejsu API (również) w usługach innych niż Google Maps Platform lub w usługach Maps Platform, które nie są jeszcze obsługiwane przez automatyczne rekomendacje.

    Jeśli zauważysz użycie w innych usługach, nie stosuj rekomendacji, dopóki najpierw nie wykonasz tych czynności:

    1. Sprawdź, czy użycie interfejsu API widoczne w Eksploratorze danych konsoli Google Cloud jest prawidłowe.

    2. Ręcznie dodaj brakujące usługi do listy interfejsów API, które mają zostać autoryzowane.

    3. Ręcznie dodaj brakujące ograniczenia aplikacji dla usług dodanych do listy interfejsów API. Jeśli inne dodane interfejsy API wymagają innego typu ograniczeń aplikacji, zapoznaj się z artykułem Migracja do wielu kluczy interfejsu API.

  • Klucz interfejsu API nie jest używany w pakietach SDK ani interfejsach API po stronie klienta.

  • Używasz klucza interfejsu API w aplikacji lub witrynie o niskim natężeniu ruchu, która nie była używana w ciągu ostatnich 60 dni.

  • Niedawno utworzono nowy klucz lub wdrożono istniejący klucz w nowej aplikacji. W takim przypadku poczekaj kilka dni, aż rekomendacje zostaną zaktualizowane.

  • Używasz klucza interfejsu API w kilku aplikacjach, które wymagają sprzecznych typów ograniczeń aplikacji, lub używasz tego samego klucza interfejsu API w zbyt wielu różnych aplikacjach lub witrynach. W obu przypadkach zalecamy przejście na wiele kluczy. Więcej informacji znajdziesz w artykule Migracja do wielu kluczy interfejsu API.

Dlaczego widzisz niepełną rekomendację

  • Używasz klucza interfejsu API w aplikacji lub witrynie o małym natężeniu ruchu, która nie była używana w ciągu ostatnich 60 dni.

  • Od bardzo niedawna używasz dotychczasowego klucza w nowym interfejsie API lub usłudze, a potok automatycznych rekomendacji dotyczących ograniczeń kluczy interfejsu API nie przetworzył jeszcze zaktualizowanych danych o wykorzystaniu. Rozpowszechnianie danych o użyciu może potrwać kilka dni.

    Jeśli zauważysz użycie w innych usługach, nie stosuj rekomendacji, dopóki najpierw nie wykonasz tych czynności:

    1. Sprawdź, czy użycie interfejsu API widoczne w Eksploratorze danych konsoli Google Cloud jest prawidłowe.

    2. Ręcznie dodaj brakujące usługi do listy interfejsów API, które mają zostać autoryzowane.

    3. Ręcznie dodaj brakujące ograniczenia aplikacji dla usług dodanych do listy interfejsów API. Jeśli inne dodane interfejsy API wymagają innego typu ograniczeń aplikacji, zapoznaj się z artykułem Migracja do wielu kluczy interfejsu API.

    4. Jeśli nie musisz pilnie ograniczyć klucza, na przykład z powodu nieautoryzowanego użycia, możesz też poczekać dzień lub dwa, aż rekomendacje zostaną zaktualizowane.

Dlaczego możesz widzieć rekomendacje, które nie są widoczne na wykresach

  1. W konsoli Google Cloud otwórz stronę Dane logowania Google Maps Platform.

  2. Jeśli ta opcja jest dostępna, wybierz Zastosuj zalecane ograniczenia.

    Zastosuj zalecane ograniczenia

  3. Wybierz Sprawdź użycie interfejsu API, aby sprawdzić, w których usługach jest używany klucz interfejsu API. Jeśli widzisz usługi inne niż Google Maps Platform, wstrzymaj, aby ręcznie sprawdzić podane wyżej kroki rekomendacji. Zapoznaj się z instrukcjami rozwiązywania problemów na początku sekcji Stosowanie zalecanych ograniczeń klucza interfejsu API.

  4. Sprawdź, czy wstępnie wypełnione ograniczenia odpowiadają witrynom i aplikacjom, w których chcesz używać klucza interfejsu API.

    Sprawdzona metoda: udokumentuj i usuń wszelkie ograniczenia aplikacji lub interfejsu API, które nie są powiązane z Twoimi usługami. Jeśli coś przestanie działać z powodu nieoczekiwanej zależności, możesz ponownie dodać wymagane aplikacje lub interfejsy API.

    • Jeśli zauważysz, że w rekomendacji brakuje aplikacji, witryny lub interfejsu API, dodaj je ręcznie lub poczekaj kilka dni na aktualizację rekomendacji.

    • Jeśli potrzebujesz dalszej pomocy dotyczącej sugerowanej rekomendacji, skontaktuj się z zespołem pomocy.

  5. Kliknij Zastosuj.

Co zrobić, jeśli po zastosowaniu rekomendacji Twoja aplikacja zostanie odrzucona

Jeśli zauważysz, że po zastosowaniu ograniczenia aplikacja lub witryna została odrzucona, poszukaj ograniczenia aplikacji, które musisz dodać, w komunikacie o błędzie odpowiedzi interfejsu API.

Pakiety SDK i interfejsy API po stronie klienta

Przeglądarki i aplikacje oparte na WebView

Nowoczesne przeglądarki ze względu na ochronę prywatności zwykle usuwają nagłówek Referer w żądaniu współdzielenia, często ograniczając go do Origin. Dokładne działanie zależy jednak od zastosowanych zasad referrer-policy witryny hostującej i może się różnić w zależności od przeglądarki i jej wersji.

Aplikacje internetowe, które do wczytywania treści używają nieprzezroczystych lub lokalnych schematów URI, zwykle powodują, że przeglądarka renderująca lub komponent WebView całkowicie usuwają nagłówek Referer ze wszystkich połączeń wychodzących. Może to powodować niepowodzenie żądań, które używają kluczy interfejsu API z ograniczeniami dotyczącymi witryn.

Więcej informacji znajdziesz w artykule Hostowanie aplikacji działających w przeglądarce na serwerze.

Instrukcje rozwiązywania problemów z aplikacjami działającymi w przeglądarce i komponentem WebView:

  • W przypadku interfejsu Maps JavaScript API szczegółowe informacje o autoryzowaniu aplikacji znajdziesz w konsoli debugowania przeglądarki.

    Nietypowe schematy URI są obsługiwane częściowo. Jeśli części aplikacji nie działają w nietypowym schemacie URI, nawet po autoryzacji wymaganego odsyłającego, prawdopodobnie musisz hostować aplikację zdalnie na serwerze i wczytywać ją przez HTTPS (lub HTTP).

    Jeśli potrzebujesz pomocy z nietypowymi schematami URI, skontaktuj się z zespołem pomocy.

  • Inne interfejsy API Map Platform zwykle zwracają stronę odsyłającą, którą musisz autoryzować w odpowiedzi na błąd interfejsu API, zakładając, że klient wysłał te informacje wraz z odrzuconym żądaniem.

    Nietypowe schematy identyfikatorów URI nie są obsługiwane.

Aplikacje na Androida

Użyj Android Debug Bridge (adb) lub Logcat.

Aplikacje na iOS

Więcej informacji znajdziesz w artykule na temat wyświetlania komunikatów logu.

Aplikacje wywołujące usługi internetowe bezpośrednio

W przypadku aplikacji wywołujących punkty końcowe interfejsu Maps Platform HTTPS REST API lub gRPC bezpośrednio bez pakietu SDK Google Maps Platform po stronie klienta:

Aplikacje na Androida i iOS

Jeśli Twoja aplikacja na Androida lub iOS wywołuje usługi Google Maps Platform bezpośrednio, bez użycia dostępnych pakietów SDK klienta Google Maps Platform, zapoznaj się z artykułami o aplikacjach na Androida i aplikacjach na iOS, aby uzyskać więcej wskazówek dotyczących rozwiązywania problemów, oraz z artykułem o zabezpieczaniu wywołań usług internetowych po stronie klienta, aby poznać aktualne sprawdzone metody dotyczące bezpieczeństwa w przypadku zastosowań mobilnych.

Jeśli Twoja aplikacja rejestruje odpowiedzi na błędy interfejsu Maps Platform API, powyższe instrukcje dotyczące pakietów SDK po stronie klienta mogą być przydatne podczas rozwiązywania problemów z uwierzytelnianiem.

Aplikacje po stronie serwera

Aplikacje po stronie serwera, które korzystają z kluczy interfejsu API, najlepiej zabezpieczyć za pomocą ograniczeń adresów IP. Jeśli do klucza zostały zastosowane ograniczenia dotyczące adresu IP, a dzienniki usługi rejestrują odpowiedzi z błędami interfejsu API Maps Platform, sprawdź logi systemowe, aby uzyskać więcej informacji. Odpowiedź z błędem będzie zawierać adres IP serwera, który musisz autoryzować.

Aplikacje oparte na przeglądarce lub komponencie WebView

Chociaż Maps Static API, Street View Static API i nowsze interfejsy API Google Maps Platform będą również obsługiwać ograniczenia dotyczące stron odsyłających, pamiętaj, że przeglądarki lub widoki internetowe prawdopodobnie ograniczą nagłówek Referer do Origin w przypadku żądań współdzielenia i prawdopodobnie w ogóle nie będą go wysyłać, np. w przypadku zasobów dostępnych lokalnie lub zasobów obsługiwanych przez protokoły inne niż HTTP lub HTTPS.

Jeśli nie możesz używać interfejsu Maps JavaScript API w aplikacji, a ograniczenia witryny nie działają, zapoznaj się z artykułem Bezpieczne wywołania usług internetowych po stronie klienta, aby dowiedzieć się, jak bezpiecznie wywoływać usługi internetowe Google Maps Platform z poziomu aplikacji po stronie klienta działającej w przeglądarce.

Wskazówki dotyczące sprawdzania ograniczeń interfejsów API

Aby sprawdzić wymagane ograniczenia interfejsu API, zapoznaj się z artykułem Określanie interfejsów API, które używają Twojego klucza interfejsu API.

Jeśli nie możesz określić, które ograniczenia zastosować:

  1. Zapisz obecne ograniczenia, aby móc z nich skorzystać w przyszłości.
  2. Tymczasowo je usuń, aby zbadać problem. Możesz sprawdzić użycie w czasie, wykonując czynności opisane w sekcji Sprawdzanie użycia klucza interfejsu API.
  3. W razie potrzeby skontaktuj się z zespołem pomocy.

Usuwanie nieużywanych kluczy interfejsu API

Zanim usuniesz klucz interfejsu API, upewnij się, że nie jest on używany w środowisku produkcyjnym. Jeśli nie ma udanego ruchu, klucz można prawdopodobnie bezpiecznie usunąć. Więcej informacji znajdziesz w artykule Sprawdzanie użycia klucza interfejsu API.

Aby usunąć klucz interfejsu API:

  1. W konsoli Google Cloud otwórz stronę Dane logowania Google Maps Platform.

  2. Wybierz klucz interfejsu API, który chcesz usunąć.

  3. U góry strony kliknij przycisk Usuń.

  4. Na stronie Usuń dane logowania kliknij Usuń.

    Usunięcie klucza interfejsu API może potrwać kilka minut. Po zakończeniu propagacji cały ruch korzystający z usuniętego klucza interfejsu API będzie odrzucany.

Zachowaj ostrożność podczas rotacji kluczy interfejsu API

Rotacja klucza interfejsu API powoduje utworzenie nowego klucza, który ma wszystkie ograniczenia starego klucza. W tym czasie akceptowane są zarówno stare, jak i nowe klucze, co daje Ci możliwość przeniesienia aplikacji na nowy klucz.

Zanim wykonasz rotację klucza interfejsu API:

  • Najpierw spróbuj ograniczyć klucze interfejsu API zgodnie z opisem w artykule Ograniczanie kluczy interfejsu API.

  • Jeśli ograniczenie klucza interfejsu API nie jest możliwe z powodu konfliktów typów ograniczeń aplikacji, przejdź na wiele nowych (ograniczonych) kluczy zgodnie z opisem w sekcji Przechodzenie na wiele kluczy interfejsu API. Migracja pozwala kontrolować proces migracji i harmonogram wdrażania nowych kluczy interfejsu API.

Jeśli nie możesz zastosować powyższych sugestii i musisz zmienić klucz interfejsu API, aby zapobiec nieautoryzowanemu użyciu, wykonaj te czynności:

  1. W konsoli Google Cloud otwórz stronę Dane logowania Google Maps Platform.

  2. Otwórz klucz interfejsu API, który chcesz zmienić.

  3. U góry strony kliknij Obróć klucz.

  4. Opcjonalnie zmień nazwę klucza interfejsu API.

  5. Kliknij Utwórz.

  6. Zaktualizuj aplikacje, aby używały nowego klucza.

Po zaktualizowaniu aplikacji pod kątem użycia nowego klucza usuń stary klucz, klikając przycisk Usuń poprzedni klucz w sekcji Poprzedni klucz na stronie nowego klucza interfejsu API.

Przejście na wiele kluczy interfejsu API

Aby przejść z używania jednego klucza interfejsu API w kilku aplikacjach na używanie jednego unikalnego klucza interfejsu API w każdej aplikacji, wykonaj te czynności:

  1. Określ, które aplikacje potrzebują nowych kluczy:

    • Aplikacje internetowe są najłatwiejsze do aktualizowania, ponieważ masz kontrolę nad całym kodem. Zaplanuj aktualizację wszystkich kluczy aplikacji internetowych.
    • W przypadku aplikacji mobilnych jest to znacznie trudniejsze, ponieważ klienci muszą zaktualizować swoje aplikacje, zanim będzie można używać nowych kluczy.
  2. Utwórz i ogranicz nowe klucze: dodaj ograniczenie aplikacji i co najmniej jedno ograniczenie interfejsu API. Więcej informacji znajdziesz w artykule Zalecane sprawdzone metody.

  3. Dodaj nowe klucze do aplikacji: w przypadku aplikacji mobilnych może to potrwać kilka miesięcy, zanim wszyscy użytkownicy zaktualizują aplikację do najnowszej wersji z nowym kluczem interfejsu API.

Podział wykorzystania po stronie klienta i po stronie serwera na osobne projekty

Jeśli musisz wywoływać usługi Google Maps Platform zarówno z aplikacji po stronie serwera, jak i bezpośrednio z aplikacji po stronie klienta działających na urządzeniach użytkowników, zalecamy rozdzielenie tych zastosowań między 2 osobne projekty.

Dzięki temu możesz stosować odpowiednie limity na minutę i na użytkownika w przypadku większości usług Google Maps Platform w projekcie po stronie klienta. Dzięki temu wszyscy użytkownicy końcowi będą mieli sprawiedliwy udział w ogólnym limicie projektu, nie wpływając na siebie nawzajem.

Ponieważ jednak limity na użytkownika mają wpływ zarówno na aplikacje po stronie klienta, jak i po stronie serwera, jeśli potrzebujesz dużej przepustowości dla zadań po stronie serwera, skonfiguruj osobny projekt dla tego przypadku użycia z wyższym limitem na użytkownika lub bez limitu.

Wyłącz nieużywane usługi

Nie pozostawiaj nieużywanych usług włączonych w projekcie, ponieważ jest to podatne na nadużycia, zwłaszcza jeśli nie ograniczysz wszystkich publicznych kluczy interfejsu API. Zgodnie ze sprawdzoną metodą usługę należy włączać w projekcie tylko wtedy, gdy jest ona potrzebna aplikacjom.

Dodanie ograniczeń interfejsu API do klucza uniemożliwia jego użycie w usługach, do których nie został autoryzowany, ale ograniczenia interfejsu API dotyczą tylko tego konkretnego klucza. Wyłącz usługę na poziomie projektu, aby zapobiec nieautoryzowanemu użyciu usługi na dowolnym kluczu połączonym z projektem.

Używanie pakietów SDK po stronie klienta

Jeśli używasz dostarczonych pakietów SDK Google Maps Platform po stronie klienta, zawsze możesz zastosować odpowiednie ograniczenia do klucza interfejsu API, aby zabezpieczyć korzystanie z usługi.

Korzystanie z pakietów SDK po stronie klienta pozwoli Ci też stosować bardziej zaawansowane mechanizmy zabezpieczeń, takie jak Sprawdzanie aplikacji Firebase na platformach interfejsów API Maps Platform, które je obsługują. Więcej informacji znajdziesz w artykule Zabezpieczanie klucza interfejsu API za pomocą funkcji Sprawdzanie aplikacji.

Jeśli pakiety SDK po stronie klienta nie są dostępne na Twojej platformie, zapoznaj się z artykułem Zabezpieczanie wywołań usług internetowych po stronie klienta.

Informacje o dostępności pakietów SDK Google Maps Platform po stronie klienta na różnych platformach znajdziesz w artykule Zalecane ograniczenia dotyczące aplikacji i interfejsów API.

Ochrona korzystania ze statycznego interfejsu Web API

Statyczne interfejsy API, takie jak Maps Static API i Street View Static API, są podobne do wywołań interfejsów API usług internetowych.

Oba wywołujesz za pomocą interfejsu API typu REST HTTPS, a adres URL żądania do interfejsu API zwykle generujesz na serwerze. Jednak zamiast zwracać odpowiedź JSON, interfejsy Static Web API generują obraz, który można umieścić w wygenerowanym kodzie HTML. Co ważniejsze, to zwykle klient użytkownika, a nie serwer, wywołuje usługę Google Maps Platform.

Używanie podpisu cyfrowego

Zalecamy, aby oprócz klucza interfejsu API zawsze używać podpisów cyfrowych. Sprawdź też, na ile niepodpisanych żądań dziennie chcesz zezwolić, i odpowiednio dostosuj limity niepodpisanych żądań.

Więcej informacji o podpisach cyfrowych znajdziesz w przewodniku po podpisach cyfrowych.

Ochrona obiektu tajnego do podpisywania

Aby chronić statyczne interfejsy API, nie umieszczaj tajnych kluczy podpisywania interfejsu API bezpośrednio w kodzie ani w drzewie źródłowym i nie ujawniaj ich w aplikacjach po stronie klienta. Aby chronić obiekty tajne do podpisywania, stosuj te sprawdzone metody:

  • Generuj podpisane adresy URL żądań do interfejsu API Maps Static API i Street View Static API po stronie serwera podczas wyświetlania strony internetowej lub w odpowiedzi na żądanie z aplikacji mobilnej.

    W przypadku statycznych treści internetowych możesz użyć widżetu Podpisz URL teraz na stronie Dane logowania w Google Maps Platform w konsoli Cloud.

    W przypadku dynamicznych treści z internetu zapoznaj się z dostępnymi przykładowymi kodami podpisywania żądań URL.

  • Przechowuj obiekty tajne podpisywania poza kodem źródłowym i drzewem źródłowym aplikacji. Jeśli umieścisz klucze podpisywania lub inne informacje prywatne w zmiennych środowiskowych lub dołączysz pliki, które są przechowywane oddzielnie, a następnie udostępnisz kod, klucze podpisywania nie zostaną uwzględnione w udostępnionych plikach. Jeśli przechowujesz klucze tajne podpisywania lub inne informacje prywatne w plikach, przechowuj te pliki poza drzewem źródłowym aplikacji, aby klucze tajne podpisywania nie znajdowały się w systemie kontroli kodu źródłowego. Ten środek ostrożności jest szczególnie ważny, jeśli używasz publicznego systemu zarządzania kodem źródłowym, takiego jak GitHub.

Ochrona kluczy interfejsu API usługi internetowej

Aby dowiedzieć się, jak bezpiecznie korzystać z interfejsów API i usług Google Maps Platform w aplikacjach po stronie klienta, przeczytaj artykuły Korzystanie z pakietów SDK po stronie klienta i Zabezpieczanie wywołań usług internetowych po stronie klienta.

Przechowuj klucze interfejsu API poza kodem źródłowym lub drzewem źródłowym aplikacji. Jeśli umieścisz klucze interfejsu API lub inne informacje w zmiennych środowiskowych lub dołączysz pliki, które są przechowywane oddzielnie, a następnie udostępnisz kod, klucze interfejsu API nie zostaną uwzględnione w udostępnionych plikach. Jest to szczególnie ważne, jeśli używasz publicznego systemu zarządzania kodem źródłowym, takiego jak GitHub.

Aby chronić klucz interfejsu API usługi internetowej przed przypadkowym użyciem, Google zaleca stosowanie ograniczeń interfejsu API do każdego klucza używanego w Google Maps Platform. Dodatkowo zastosowanie ograniczeń adresów IP do klucza usługi internetowej pomoże chronić go przed nieautoryzowanym użyciem z innych źródłowych adresów IP, nawet jeśli klucz zostanie przypadkowo ujawniony.

Używanie protokołu OAuth w aplikacjach po stronie serwera

OAuth 2.0 to otwarty standard przekazywania dostępu.

Protokół OAuth 2.0 obsługuje przypadki użycia, w których użytkownik upoważnia aplikację do dostępu do danych osobowych w jego imieniu. Jednak w przypadku Google Maps Platform protokół OAuth 2.0 jest przeznaczony do wykorzystania przez dewelopera tymczasowych tokenów dostępu do autoryzacji aplikacji do wywoływania interfejsu API w imieniu konta usługi projektu w chmurze Google z uprawnieniami konta usługi.

Konto usługi może mieć bardzo szerokie uprawnienia, dlatego do autoryzowania wywołań między serwerami, które są wykonywane między zaufanymi aplikacjami dewelopera po stronie serwera a serwerami Google Maps Platform, zalecamy używanie protokołu OAuth 2.0.

W przypadku aplikacji po stronie klienta działających na urządzeniach użytkowników zalecane są inne metody uwierzytelniania, takie jak klucze interfejsu API.

Jeśli chcesz używać protokołu OAuth 2.0 do autoryzowania ruchu między serwerami, poszukaj tematu dotyczącego protokołu OAuth w dokumentacji API.

Oto na przykład temat dotyczący protokołu OAuth w przypadku Address Validation API.

Bezpieczne wywołania usług internetowych po stronie klienta

Jeśli pakiety SDK po stronie klienta nie są dostępne, zapoznaj się z poniższymi zaleceniami.

Używaj serwera proxy

Korzystanie z bezpiecznego serwera proxy zapewnia solidne źródło do interakcji z punktem końcowym usługi internetowej Google Maps Platform z aplikacji po stronie klienta bez ujawniania klucza interfejsu API, tajnego klucza podpisywania ani konta usługi Google Cloud nieautoryzowanym użytkownikom.

Najważniejsze informacje:

  • Twórz żądania Google Maps Platform na serwerze proxy. Nie zezwalaj klientom na przekazywanie dowolnych wywołań interfejsu API za pomocą serwera proxy.

  • Przetwarzaj odpowiedzi Google Maps Platform na serwerze proxy. Odfiltrowywanie danych, których klient nie potrzebuje.

Więcej informacji o korzystaniu z serwera proxy znajdziesz w artykule Living Vicariously: Using Proxy Servers with the Google Data API Client Libraries (Życie zastępcze: korzystanie z serwerów proxy z bibliotekami klienta interfejsu Google Data API).

Bezpieczne bezpośrednie połączenia z usługami internetu mobilnego

Jeśli nie możesz skonfigurować bezpiecznego serwera proxy dla aplikacji po stronie klienta, zabezpiecz ją, wykonując te czynności:

  1. Używanie nagłówków HTTP:

    • Android użyj nagłówków HTTP X-Android-Package i X-Android-Cert.

    • iOS użyj nagłówka HTTP X-Ios-Bundle-Identifier.

  2. Dodaj odpowiednie ograniczenia aplikacji do klucza na Androida lub iOS.

  3. Zanim rozważysz wysyłanie wywołań bezpośrednio z aplikacji mobilnej do usługi internetowej interfejsu REST API Google Maps Platform, sprawdź, czy żądania z nieprawidłowymi identyfikatorami aplikacji na Androida lub iOS są odrzucane.

    Jeśli ograniczenia aplikacji na Androida i iOS nie są obsługiwane w testowanym punkcie końcowym, Google zdecydowanie zaleca użycie bezpiecznego serwera proxy między klientami mobilnymi a punktem końcowym usługi internetowej Google Maps Platform.

Wskazówki dotyczące aplikacji na Androida:

  • Zanim zintegrujesz aplikację na Androida z usługami Google Maps Platform, sprawdź, czy identyfikator aplikacji (nazywany też nazwą pakietu) jest prawidłowo sformatowany. Szczegółowe informacje znajdziesz w artykule Konfigurowanie modułu aplikacji w dokumentacji Androida.

  • Aby przekazać X-Android-Package bezpośrednio z aplikacji, wyszukaj go automatycznie za pomocą Context.getPackageName().

  • Aby przekazywać X-Android-Cert bezpośrednio z aplikacji, oblicz wymagany odcisk cyfrowy SHA-1 certyfikatów podpisywania aplikacji, który jest dostępny w PackageInfo.signingInfo.

  • Jeśli autoryzujesz aplikację na Androida za pomocą konsoli Google Cloud, pamiętaj, że interfejs oczekuje, że odcisk cyfrowy SHA-1 będzie ciągiem znaków rozdzielonych dwukropkami, np. 00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF:00:11:22:33. Jednak narzędzie gcloud i interfejs API kluczy interfejsu API oczekują ciągu szesnastkowego bez separatorów.

Wskazówki dotyczące aplikacji na iOS:

  • Zanim zintegrujesz aplikację na iOS z usługami Google Maps Platform, sprawdź, czy identyfikator pakietu jest prawidłowo sformatowany.

  • Podczas autoryzowania aplikacji na iOS w nagłówku X-Ios-Bundle-Identifier należy zawsze przekazywać identyfikator pakietu głównego.

Więcej informacji znajdziesz w artykułach Zarządzanie kluczami interfejsu API i Używanie kluczy interfejsu API do uzyskiwania dostępu do interfejsów API.

Hostowanie aplikacji działających w przeglądarce na serwerze

Platformy takie jak Apache Cordova umożliwiają wygodne tworzenie wieloplatformowych aplikacji hybrydowych działających w komponencie WebView. Nie ma jednak gwarancji, że ograniczenia witryn dotyczące klucza interfejsu API będą działać prawidłowo, chyba że aplikacja internetowa jest wczytywana przy użyciu protokołu HTTP lub HTTPS z witryny, którą kontrolujesz i którą autoryzujesz.

Zasoby powiązane, wczytywane lokalnie z aplikacji hybrydowej lub dostępne za pomocą adresu URL pliku lokalnego, w wielu przypadkach uniemożliwiają autoryzację na podstawie strony odsyłającej, ponieważ silnik przeglądarki obsługujący komponent WebView pomija wysyłanie nagłówka Referer. Aby tego uniknąć, hostuj aplikacje internetowe po stronie serwera, a nie klienta.

W przypadku aplikacji mobilnych możesz też rozważyć użycie dostępnych natywnych pakietów SDK Google Maps Platform na Androida i iOS zamiast pakietu SDK opartego na przeglądarce.

Zabezpieczanie klucza interfejsu API za pomocą Sprawdzania aplikacji

Niektóre pakiety SDK i interfejsy API Map umożliwiają integrację z funkcją Sprawdzanie aplikacji Firebase. Sprawdzanie aplikacji chroni wywołania z aplikacji do Google Maps Platform, blokując ruch pochodzący ze źródeł innych niż uprawnione aplikacje. W tym celu sprawdza token od dostawcy atestu. Integracja aplikacji ze Sprawdzaniem aplikacji pomaga chronić przed szkodliwymi żądaniami, dzięki czemu nie są naliczane opłaty za nieautoryzowane wywołania interfejsu API.

Instrukcje integracji Sprawdzania aplikacji:

Postępowanie w przypadku nieautoryzowanego użycia klucza interfejsu API

Jeśli wykryjesz nieautoryzowane użycie klucza interfejsu API, wykonaj te czynności, aby rozwiązać problem:

  1. Ogranicz klucze: jeśli używasz tego samego klucza w wielu aplikacjach, przejdź na wiele kluczy interfejsu API i używaj osobnych kluczy w każdej aplikacji. Więcej informacji:

  2. Jeśli używasz pakietu Places SDK lub interfejsu Maps JavaScript API, możesz też użyć funkcji Sprawdzanie aplikacji, aby zabezpieczyć klucz interfejsu API.

  3. Klucze należy zastępować lub zmieniać tylko wtedy, gdy:

    • Wykrywasz nieautoryzowane użycie kluczy, których nie można ograniczyć lub które są już ograniczone, a Sprawdzanie aplikacji nie ma zastosowania.

    • Chcesz szybciej zabezpieczyć klucz interfejsu API i powstrzymać nadużycia, nawet jeśli może to wpłynąć na prawidłowy ruch z aplikacji.

    Zanim przejdziesz dalej, przeczytaj artykuł Zachowaj ostrożność podczas rotacji kluczy interfejsu API.

  4. Jeśli nadal masz problemy lub potrzebujesz pomocy, skontaktuj się z zespołem pomocy.

Zalecane ograniczenia dotyczące aplikacji i interfejsów API

W sekcjach poniżej znajdziesz sugerowane ograniczenia aplikacji i interfejsów API dla poszczególnych interfejsów API, pakietów SDK i usług Google Maps Platform.

Zalecane ograniczenia interfejsów Recommender API

Te wytyczne dotyczące ograniczeń interfejsu API dotyczą wszystkich usług Google Maps Platform:

  • Ogranicz klucz interfejsu API tylko do tych interfejsów API, których używasz, z tymi wyjątkami:

    • Jeśli Twoja aplikacja używa pakietu Places SDK for Android lub Places SDK for iOS, autoryzuj Places API (New) lub Places API, w zależności od używanych wersji pakietu SDK. 1.

    • Jeśli Twoja aplikacja korzysta z interfejsu Maps JavaScript API, zawsze autoryzuj go za pomocą klucza.

    • Jeśli korzystasz też z którejkolwiek z tych usług Maps JavaScript API, musisz autoryzować również te interfejsy API:

      Usługa Ograniczenie interfejsu API
      Directions Service (starsza wersja) Directions API (starsza wersja)
      Distance Matrix Service (starsza wersja) Distance Matrix API (starsza wersja)
      Elevation Service Elevation API
      Geocoding Service Geocoding API
      Klasa Place, widżet Autouzupełnianie miejsc (nowość) i interfejs Place Autocomplete Data API Places API (nowość)2
      Biblioteka miejsc, usługa miejsc i widżet autouzupełniania miejsc Places API2

1 Więcej informacji znajdziesz w dokumentacji pakietu SDK Miejsc na Androida i pakietu SDK Miejsc na iOS.

2 Jeśli nie masz pewności, czy musisz autoryzować Places API (nowy) czy Places API (starsza wersja), zapoznaj się z dokumentacją Maps JavaScript API.

Oto kilka przykładów:

  • Używasz pakietu Maps SDK na Androida i pakietu SDK Miejsc na Androida, więc jako ograniczenia interfejsu API dodajesz pakiet Maps SDK na Androida i interfejs Places API (New).

  • Twoja witryna korzysta z usługi Elevation Service interfejsu Maps JavaScript API i interfejsu Maps Static API, więc dodajesz ograniczenia interfejsu API dla wszystkich tych interfejsów API:

    • Maps JavaScript API
    • Elevation API
    • Maps Static API

Zalecane ograniczenie aplikacji

Witryny

W przypadku witryn korzystających z usług Maps JavaScript API, Maps Static API lub Street View Static API albo wywołujących najnowsze usługi Google Maps Platform bezpośrednio przez interfejs HTTPS REST API lub gRPC użyj ograniczenia aplikacji Witryny:

1 W przypadku aplikacji mobilnych rozważ użycie natywnych pakietów Maps SDK na Androida i Maps SDK na iOS.

2 W przypadku aplikacji mobilnych rozważ użycie natywnych pakietów Places SDK for Android i Places SDK for iOS.

3 Zobacz też Ochrona korzystania z interfejsu Static Web API.

witryny z interfejsem Maps Embed API,

Korzystanie z Maps Embed API jest bezpłatne, ale należy ograniczyć użycie klucza interfejsu API, aby zapobiec nadużyciom w innych usługach.

Sprawdzona metoda: utwórz osobny klucz interfejsu API do używania z Maps Embed API i ogranicz go tylko do tego interfejsu. To ograniczenie wystarczająco zabezpiecza klucz, uniemożliwiając jego nieautoryzowane użycie w innych usługach Google. Aby mieć pełną kontrolę nad tym, gdzie można używać klucza interfejsu Maps Embed API, Google zaleca też stosowanie ograniczeń aplikacji Witryny.

Jeśli nie możesz oddzielić użycia interfejsu Maps Embed API od osobnego klucza interfejsu API, zabezpiecz istniejący klucz za pomocą ograniczenia aplikacji Witryny.

aplikacje i serwery korzystające z usług internetowych,

W przypadku serwerów i aplikacji po stronie klienta z zaufanych firmowych sieci wewnętrznych, które korzystają z usług internetowych i kluczy interfejsu API, użyj ograniczenia aplikacji IP addresses.

Używaj w przypadku aplikacji i serwerów korzystających z tych interfejsów API:

4 W przypadku aplikacji mobilnych rozważ użycie pakietu Navigation SDK.

5 Aby bezpiecznie korzystać z urządzeń mobilnych, używaj bezpiecznego serwera proxy.

6 W przypadku aplikacji po stronie klienta rozważ użycie natywnej usługi geolokalizacji oferowanej przez platformę, np. W3C Geolocation w przypadku przeglądarek, LocationManager lub dostawca uśrednionej lokalizacji API w przypadku Androida albo Core Location w przypadku iOS.

7 W przypadku aplikacji mobilnych rozważ użycie natywnego pakietu Places SDK for Android i Places SDK for iOS.

8 Aby bezpiecznie korzystać z interfejsu po stronie klienta, użyj bezpiecznego serwera proxy.

Aplikacje na Androida

W przypadku aplikacji na Androida użyj ograniczenia aplikacji Android apps. Używaj w przypadku aplikacji korzystających z tych pakietów SDK:

Aby zapobiec przypadkowemu sprawdzaniu kluczy interfejsu API w systemie kontroli wersji, użyj wtyczki Secrets Gradle, która umożliwia wstrzykiwanie obiektów tajnych z pliku lokalnego zamiast przechowywania ich w pliku manifestu Androida.

Aplikacje na iOS

W przypadku aplikacji na iOS użyj ograniczenia aplikacji iOS apps. Używaj w aplikacjach i na serwerach korzystających z tych pakietów SDK:

Więcej informacji