Sprawdzone metody zabezpieczania interfejsu API

W przypadku aplikacji i projektów, które korzystają z interfejsów API i pakietów SDK Google Maps Platform, należy używać kluczy interfejsu API lub, w razie potrzeby, protokołu Oauth, aby zapobiegać nieautoryzowanemu użyciu i obciążeniom. Jeśli używasz kluczy interfejsu API, dla większego bezpieczeństwa ogranicz je podczas tworzenia kluczy. Te sprawdzone metody pokazują, jak ograniczać dostęp.

Oprócz stosowania ograniczeń dotyczących aplikacji i kluczy interfejsu API postępuj zgodnie ze wszystkimi zabezpieczeniami dotyczącymi konkretnych usług Google Maps Platform. Zapoznaj się na przykład z interfejsem Maps JavaScript API podanymi w sekcji Zalecane ograniczenia aplikacji i interfejsu API.

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

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

Zalecane sprawdzone metody

Aby uzyskać lepszą ochronę i uniknąć opłat za nieautoryzowane użycie, podczas wszystkich interfejsów API, pakietów SDK i usług Google Maps Platform stosuj te sprawdzone metody bezpieczeństwa interfejsu API:

Ogranicz klucze interfejsu API

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

Usuwanie nieużywanych kluczy interfejsu API

Sprawdzanie użycia klucza interfejsu API

Zachowaj ostrożność podczas generowania kluczy interfejsu API

Dodatkowe rekomendacje dla witryn korzystających ze statycznych interfejsów API

Ochrona aplikacji za pomocą statycznych interfejsów API

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

Ochrona aplikacji za pomocą usług internetowych

Dodatkowe zalecenia dotyczące aplikacji mobilnych na iOS i Androida

Ochrona aplikacji mobilnych za pomocą internetowych usług lub statycznych interfejsów API

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

  • Zanim zmienisz klucz interfejsu API, sprawdź wykorzystanie klucza interfejsu API. Jest to szczególnie ważne, jeśli dodajesz ograniczenia po użyciu klucza.

  • W razie potrzeby zaktualizuj wszystkie aplikacje, dodając do nich nowe klucze interfejsu API.

  • Jeśli klucz interfejsu API nie jest aktywnie używany, możesz przenieść swoje aplikacje do wielu nowych kluczy API w swoim tempie, pozostawiając pierwotny klucz interfejsu API bez zmian, dopóki nie zobaczysz tylko jednego typu ruchu, do którego możesz ograniczyć dostęp z użyciem klucza aplikacji.

    Zanim ograniczysz lub usuniesz stary klucz, możesz monitorować wykorzystanie w czasie oraz sprawdzić, kiedy określone 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 klucz API został przejęty, chcesz przyspieszyć jego zabezpieczanie i powstrzymać nadużycia. W aplikacjach na Androida i iOS klucze nie są zastępowane, dopóki klient nie zaktualizuje aplikacji. Aktualizowanie lub zastępowanie kluczy w języku JavaScript lub w aplikacjach internetowych jest o wiele łatwiejsze, ale pamiętaj, że wciąż może wymagać starannego planowania i szybkiej pracy.

    Więcej informacji znajdziesz w artykule Obsługa nieuprawnionego użycia klucza interfejsu API.

Ogranicz klucze interfejsu API

Sprawdzoną metodą jest ograniczenie klucza interfejsu API za pomocą ograniczenia aplikacji i co najmniej jednego ograniczenia interfejsu API. Sugerowane ograniczenia dotyczące interfejsów API, pakietów SDK i JavaScriptu znajdziesz w sekcji Zalecane ograniczenia aplikacji i interfejsu API poniżej.

  • Ograniczenie aplikacji Możesz ograniczyć używanie klucza interfejsu API do określonych platform: aplikacji na Androida lub iOS, określonych witryn dla aplikacji po stronie klienta albo określonych adresów IP lub podsieci podsieci z aplikacjami interfejsu API REST po stronie serwera.

    Aby ograniczyć klucz, dodaj co najmniej 1 ograniczenie typów aplikacji, które chcesz autoryzować. Dozwolone są tylko żądania pochodzące z tych źródeł.

  • Ograniczenia interfejsu API Możesz ograniczyć dostęp do interfejsów API, pakietów SDK i usług Google Maps Platform, w których możesz używać swojego klucza interfejsu API. Ograniczenia interfejsów API zezwalają wyłącznie na żądania do określonych interfejsów API i pakietów SDK. W przypadku dowolnego klucza interfejsu API możesz określić dowolną liczbę ograniczeń interfejsu API. Lista dostępnych interfejsów API obejmuje wszystkie interfejsy API włączone w projekcie.

Ustawianie ograniczenia aplikacji dla klucza interfejsu API

  1. Otwórz stronę Dane logowania.

  2. Wybierz klucz interfejsu API, do którego dostęp chcesz ograniczyć.

  3. Na stronie Edytowanie klucza interfejsu API w sekcji Ograniczenia klucza wybierz Ustaw ograniczenie aplikacji.

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

    Typ ograniczenia Opis
    Witryny Podaj co najmniej jedną stronę odsyłającą.
    • Uniwersalne schematy identyfikatora URI strony odsyłającej to https i http.
    • Zawsze podawaj pełny identyfikator URI strony odsyłającej, w tym schemat protokołu, nazwę hosta i opcjonalny port (np. https://google.com).
    • Do autoryzowania wszystkich subdomen możesz używać symboli wieloznacznych. Na przykład https://*.google.com akceptuje wszystkie witryny z końcówką .google.com.
    • Zachowaj ostrożność podczas wspominania o stronach odsyłających do całej ścieżki, np. https://google.com/some/path, ponieważ domyślnie większość przeglądarek usuwa ścieżkę z żądań z innych domen.
    Adresy IP Podaj co najmniej 1 adres IPv4 lub IPv6 albo podsieć w notacji CIDR. Adresy IP muszą odpowiadać adresom źródłowym obserwowanym przez serwery Google Maps Platform. Jeśli korzystasz z tłumaczenia adresów sieciowych (NAT), ten adres zazwyczaj odpowiada publicznemu adresowi IP Twojego komputera.
    Aplikacje na Androida Dodaj nazwę pakietu na Androida (z pliku AndroidManifest.xml) oraz odcisk cyfrowy certyfikatu podpisującego SHA-1 każdej aplikacji na Androida, którą chcesz autoryzować. Jeśli korzystasz z podpisywania podpisywania aplikacji przez Google Play, aby dowiedzieć się, jak pobrać odcisk cyfrowy certyfikatu podpisywania, przeczytaj artykuł Współpraca z dostawcami interfejsów API. Jeśli samodzielnie zarządzasz kluczem podpisywania, przeczytaj artykuł Samodzielne podpisywanie aplikacji lub zapoznaj się z instrukcjami dotyczącymi środowiska kompilacji.
    Aplikacje na iOS Dodaj identyfikator pakietu każdej aplikacji na iOS, którą chcesz autoryzować.

    Rekomendacje dotyczące ograniczeń aplikacji znajdziesz w artykule Zalecane ograniczenie aplikacji.

  5. Kliknij Zapisz.

Ustawianie ograniczeń interfejsu API

  1. Otwórz stronę Dane logowania.

  2. Wybierz klucz interfejsu API, do którego dostęp chcesz ograniczyć.

  3. Na stronie Edytowanie klucza interfejsu API w sekcji Ograniczenia interfejsu API:

    • Wybierz Ogranicz klucz.

    • Otwórz Wybierz interfejsy API i wskaż interfejsy API lub pakiety SDK, do których Twoja aplikacja ma mieć dostęp przy użyciu klucza interfejsu API.

      Jeśli interfejsu API lub pakietu SDK nie ma na liście, musisz go włączyć. Szczegółowe informacje znajdziesz w artykule Włączanie co najmniej 1 interfejsu API lub pakietów SDK.

  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 dotyczącym pobierania klucza interfejsu API w dokumentacji konkretnego interfejsu API lub pakietu SDK, który Cię interesuje.

Zalecane ograniczenia interfejsu API znajdziesz w artykule na temat zalecanych ograniczeń interfejsu API.

Sprawdź wykorzystanie klucza interfejsu API

Jeśli ograniczasz klucze interfejsu API po ich utworzeniu lub jeśli chcesz sprawdzić, które interfejsy API są używane przez dany klucz, aby móc je ograniczyć, sprawdź wykorzystanie 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 jakiekolwiek wykorzystanie poza usługami Google Maps Platform, sprawdź, czy musisz dodać więcej ograniczeń, aby uniknąć niechcianego użycia. Aby określić ograniczenia interfejsu API i aplikacji, które mają być zastosowane do Twojego klucza interfejsu API, możesz skorzystać z eksploratora Cloud Console w Google Maps Platform:

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

Poniższe raporty wskaźników pozwalają określić, które interfejsy API używają Twoich kluczy interfejsu API. Korzystając z tych raportów, możesz:

  • Zobacz, jak są używane Twoje klucze interfejsu API
  • Wykrywaj nieoczekiwane wykorzystanie
  • Pomóż nam sprawdzić, czy nieużywany klucz można bezpiecznie usunąć. Informacje o usuwaniu klucza interfejsu API znajdziesz w artykule Usuwanie nieużywanych kluczy interfejsu API.

Stosując ograniczenia interfejsów API, możesz używać tych raportów do tworzenia listy interfejsów API w celu autoryzacji lub weryfikowania automatycznie wygenerowanych rekomendacji dotyczących ograniczeń interfejsu API. Więcej informacji o zalecanych ograniczeniach znajdziesz w artykule Stosowanie zalecanych ograniczeń. Więcej informacji o korzystaniu z eksploratora wskaźników znajdziesz w artykule Tworzenie wykresów za pomocą narzędzia Metrics Explorer.

  1. W eksploratorze wskaźników otwórz Google Cloud Console.

  2. Zaloguj się i wybierz projekt dla kluczy interfejsu API, które chcesz sprawdzić.

  3. Przejdź na stronę Metrics Explorer w przypadku swojego typu interfejsu API:

    • W przypadku kluczy interfejsu API, które używają dowolnego interfejsu API z wyjątkiem interfejsu Maps Embed API: otwórz stronę Metrics Explorer.

    • Klucze interfejsu API korzystające z interfejsu Maps Embed API: otwórz 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. Zanotuj interfejsy API, do których jest używany ten klucz interfejsu API, i potwierdź, że należy go używać.

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

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

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

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

Wybierz odpowiedni typ ograniczenia dla aplikacji w narzędziu Metrics Explorer

Gdy potwierdzisz i podejmiesz niezbędne działania, aby klucz interfejsu API był używany tylko w usługach Google Maps Platform, z których korzysta, sprawdź też, czy klucz interfejsu API ma prawidłowe ograniczenia aplikacji.

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

Jeśli klucz interfejsu API nie ma zaleceń dotyczących ograniczeń, określ typ ograniczenia, jakie ma zostać zastosowane, na podstawie zgłoszonego obiektu platform_type za pomocą eksploratora wskaźników:

  1. W eksploratorze wskaźników otwórz Google Cloud Console.

  2. Zaloguj się i wybierz projekt interfejsów API, które chcesz sprawdzić.

  3. Otwórz stronę 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, wybierz Usuń filtr na końcu aktywnego wiersza filtra, aby usunąć dodatkowy filtr.

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

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

    PLATFORM_TYPE_JS
    Zastosuj ograniczenia do witryny w kluczu.
    PLATFORM_TYPE_ANDROID
    Zastosuj ograniczenia do aplikacji na Androida.
    PLATFORM_TYPE_IOS
    Zastosuj ograniczenia do aplikacji na iOS.
    PLATFORM_TYPE_WEBSERVICE
    W celu prawidłowego ograniczenia klucza może zależeć na nim adres IP. Więcej informacji o interfejsie Maps Static API i Street View Static API znajdziesz w artykule Ochrona aplikacji przy użyciu statycznych interfejsów API witryny. Dalsze instrukcje dotyczące tego interfejsu znajdziesz w artykule dotyczącym witryn z interfejsem API Map Google do umieszczania na stronie.
    Mój klucz interfejsu API korzysta z wielu typów platform
    Ruch nie może być zabezpieczony za pomocą tylko jednego klucza interfejsu API. Musisz przeprowadzić migrację do wielu kluczy interfejsu API. Więcej informacji znajdziesz w artykule Migracja do wielu kluczy interfejsu API.

Używaj oddzielnych kluczy interfejsu API dla każdej aplikacji

Ta metoda ogranicza zakres każdego klucza. Jeśli jeden klucz interfejsu API zostanie naruszony, możesz go usunąć lub wygenerować ponownie bez konieczności aktualizowania pozostałych. Możesz utworzyć maksymalnie 300 kluczy interfejsu API na projekt. Więcej informacji znajdziesz w sekcji Limity kluczy interfejsu API.

Jeden klucz interfejsu API jest odpowiedni dla każdej aplikacji, jednak ze względów bezpieczeństwa można używać kluczy z ograniczeniami w wielu aplikacjach, pod warunkiem, że są one objęte tym samym typem ograniczeń.

Zastosuj zalecane ograniczenia klucza interfejsu API

W przypadku niektórych właścicieli i edytorów projektu Google Maps Platform zaleca określone ograniczenia kluczy interfejsu API, które nie mają ograniczeń na klucze interfejsu API oparte na ich wykorzystaniu i ich aktywności. Rekomendacje są wyświetlane na stronie Dane logowania jako wstępnie wypełnione opcje.

**Prawdopodobne powody, dla których nie widzisz pełnejlisty rekomendacji dotyczących ograniczeń, są następujące:**

  • Twój klucz interfejsu API nie jest używany w pakietach SDK ani interfejsach API po stronie klienta.
  • Klucza interfejsu API używasz też w innych usługach Google Maps Platform.
  • Klucza interfejsu API używasz w aplikacji lub witrynie o niewielkiej liczbie wyświetleń, która nie była używana w ciągu ostatnich 60 dni.
  • Nowy klucz został utworzony niedawno lub został niedawno wdrożony w nowej aplikacji. W takim przypadku poczekaj kilka dni, aż rekomendacje zostaną zaktualizowane.
  • klucza interfejsu API używasz w wielu aplikacjach, które wymagają sprzecznych typów ograniczeń aplikacji, albo używasz tego samego klucza interfejsu API w wielu różnych aplikacjach lub witrynach. W obu przypadkach zgodnie z jedną sprawdzoną metodą należy przejść na wiele kluczy. Więcej informacji znajdziesz w sekcji Migracja do wielu kluczy interfejsu API.

**Powody, dla których nie mogą być wyświetlane na wykresach eksploratora wskaźników Google Cloud Console, mogą być następujące:**

  • Twoja aplikacja lub witryna wysyłała tylko bardzo krótkie korki. W takim przypadku przejdź z widoku CHART, aby wyświetlić tabelę lub oba, ponieważ użycie jest nadal widoczne w legendzie. Więcej informacji znajdziesz w sekcji Przełączanie pełnej legendy wykresu.
  • Ruch pochodzi z interfejsu Maps Embed API. Instrukcje znajdziesz w artykule Określanie interfejsów API, które używają klucza interfejsu API.
  • Ruch z aplikacji lub witryny jest poza zakresem dat dostępnym w eksploratorze wskaźników Google Cloud Console.
  1. Zaloguj się w Google Cloud Console.

  2. Otwórz stronę Dane logowania.

  3. Wybierz Zastosuj zalecane ograniczenia (jeśli ta opcja jest dostępna).

    Uwaga: jeśli nie widzisz żadnych zalecanych ograniczeń, przeczytaj artykuł Ustawianie ograniczeń interfejsu API dla klucza interfejsu API, aby dowiedzieć się, jak ustawić odpowiednie ograniczenia.

  4. Dokładnie sprawdź, czy wstępnie ustawione ograniczenia są zgodne z witrynami i aplikacjami, w których zamierzasz używać klucza interfejsu API.

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

    • Jeśli zauważysz, że w rekomendacji brakuje wyraźnie jakiejś aplikacji, witryny lub interfejsu API, dodaj ją ręcznie lub zaczekaj kilka dni na zaktualizowanie rekomendacji.

    • Jeśli potrzebujesz dalszego wsparcia dotyczącego sugerowanej rekomendacji, skontaktuj się z zespołem pomocy.

  5. Kliknij Zastosuj.

Co zrobić, gdy aplikacja zostanie odrzucona po zastosowaniu rekomendacji

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

Poniżej znajdziesz informacje o pakietach SDK po stronie klienta:

Informacje o wymaganych ograniczeniach związanych z interfejsem API znajdziesz w artykule Określanie interfejsów API, które używają Twojego klucza interfejsu API.

Jeśli nie możesz określić ograniczeń, które chcesz zastosować, udokumentuj bieżące ograniczenia na przyszłość i usuń je tymczasowo podczas badania problemu. W razie potrzeby skontaktuj się z zespołem pomocy.

Usuń nieużywane klucze interfejsu API

Zanim usuniesz klucz interfejsu API, sprawdź, czy nie jest on używany w środowisku produkcyjnym. Jeśli nie ma żadnego ruchu, prawdopodobnie klucz jest bezpieczny do usunięcia. Więcej informacji znajdziesz w artykule Sprawdzanie wykorzystania klucza interfejsu API.

Aby usunąć klucz interfejsu API:

  1. Otwórz stronę Dane logowania.

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

  3. Kliknij przycisk Usuń u góry strony.

  4. Na stronie Usuwanie danych logowania wybierz Usuń.

    Rozpowszechnienie klucza interfejsu API może potrwać kilka minut. Po zakończeniu rozpowszechniania ruch używający usuniętego klucza interfejsu API będzie odrzucany.

Zachowaj ostrożność podczas generowania kluczy interfejsu API

Ponowne wygenerowanie klucza interfejsu API spowoduje utworzenie nowego klucza, który będzie miał wszystkie ograniczenia. Ten proces uruchamia również 24-godzinny licznik czasu, po którym stary klucz interfejsu API zostanie usunięty.

W tym czasie zarówno stary, jak i nowy klucz są akceptowane, co daje Ci szansę na migrację aplikacji do nowego klucza. Po upływie tego czasu aplikacje korzystające ze starego klucza interfejsu API przestaną działać.

Przed ponownym wygenerowaniem klucza interfejsu API:

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

  • Jeśli ograniczenie klucza interfejsu API nie jest możliwe z powodu sprzecznych typów ograniczeń aplikacji, przejdź na wiele nowych (ograniczonych) kluczy zgodnie z opisem w sekcji Migracja do wielu kluczy interfejsu API. Dzięki migracji możesz kontrolować migrację i wdrażać oś czasu dla nowych kluczy interfejsu API.

Jeśli powyższe sugestie nie działają i musisz ponownie wygenerować klucz interfejsu API, aby zapobiec nieautoryzowanemu użyciu, wykonaj te czynności, aby go wygenerować:

  1. Otwórz stronę Dane logowania.

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

  3. U góry strony wybierz Wygeneruj klucz.

  4. Kliknij Zastąp klucz.

Uwaga: w razie potrzeby możesz przywrócić dowolny klucz, który został ponownie wygenerowany do poprzedniej wersji. Nie ma ograniczeń czasowych na wycofanie zmian.

Aby wycofać ponownie wygenerowany klucz

  1. Otwórz stronę Dane logowania.

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

  3. Kliknij Przywróć poprzedni klucz.

  4. W oknie Przywróć wybierz Przywróć klucz.

Gdy cofniesz, poprzednia „nowa” wersja stanie się poprzednią wersją i zostanie ustawiony dla niej nowy 24-godzinny minutnik dezaktywacji. Między tymi 2 wartościami klucza możesz je cofać, dopóki nie wygenerujesz go jeszcze raz.

Jeśli ponownie wygenerujesz klucz, zastąpi on starą nieaktywną wartość.

Migracja do wielu kluczy interfejsu API

Aby przenieść z jednego klucza interfejsu API do wielu aplikacji w jedny unikalny klucz dla każdej z nich, wykonaj te czynności:

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

    • Aplikacje internetowe najłatwiej zaktualizować, bo masz pełną kontrolę nad kodem. Zaplanuj zaktualizowanie wszystkich kluczy aplikacji internetowych.
    • Aplikacje mobilne są znacznie trudniejsze, ponieważ klienci muszą zaktualizować aplikacje, aby móc korzystać z nowych kluczy.
  2. Utwórz i ogranicz nowe klucze: dodaj ograniczenie aplikacji i co najmniej jedno ograniczenie interfejsu API. Aby dowiedzieć się więcej, zobacz Sprawdzone metody.

  3. Dodaj nowe klucze do aplikacji: w przypadku aplikacji mobilnych może to potrwać nawet kilka miesięcy, zanim wszyscy użytkownicy zaktualizują aplikację do nowego klucza.

Ochrona aplikacji za pomocą statycznych interfejsów API

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

Do wywoływania obu tych zdarzeń użyto prostego interfejsu API typu REST HTTPS. Zazwyczaj adres URL żądania do interfejsu API jest generowany na serwerze. Jednak zamiast zwracać odpowiedź JSON, statyczne interfejsy internetowe generują obraz, który można umieścić w wygenerowanym kodzie HTML. Co ważniejsze, to użytkownik klienta, a nie jego serwer, wywołuje usługę Google Maps Platform.

Używanie podpisu cyfrowego

Sprawdzoną metodą jest używanie podpisów cyfrowych oraz klucza interfejsu API. Sprawdź także, ile żądań dziennie jest nieakceptowanych, i dostosuj odpowiednio dla nich limityniepodpisanych żądań.

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

Chroń swój tajny klucz podpisywania

Aby chronić statyczne interfejsy API, nie umieszczaj obiektów tajnych podpisywania interfejsu API bezpośrednio w kodzie ani w drzewie źródłowym ani nie udostępniaj ich w aplikacjach po stronie klienta. Skorzystaj z tych sprawdzonych metod ochrony obiektów tajnych:

  • Podpisz swoje żądania po stronie serwera, a nie klienta. Jeśli korzystasz z podpisywania klienta po stronie JavaScript w języku JavaScript, możesz udostępniać go wszystkim użytkownikom odwiedzającym Twoją witrynę. Dlatego w przypadku obrazów generowanych dynamicznie zawsze podawaj podpisany adres URL interfejsu Maps Static API i Street View Static API po stronie serwera podczas wyświetlania strony internetowej. W przypadku statycznych treści internetowych można użyć widżetu Podpisz URL teraz na stronie Dane logowania w konsoli Google Cloud Platform.

  • Przechowuj obiekty tajne podpisywania poza kodem źródłowym aplikacji i drzewem źródłowym. Jeśli umieścisz tajne klucze podpisywania lub inne prywatne informacje w zmiennych środowiskowych lub dołączysz pliki, które są przechowywane oddzielnie, a następnie udostępnisz swój kod, obiekty tajne podpisywania nie będą uwzględniane w udostępnionych plikach. Jeśli przechowujesz w plikach tajnych obiektów tajnych lub inne informacje prywatne, przechowuj je poza drzewem źródłowym aplikacji, aby zablokować obiekty tajne podpisu w systemie źródłowym kodu źródłowego. Jest to szczególnie ważne, jeśli korzystasz z publicznego systemu zarządzania kodami źródłowym, takiego jak GitHub.

Chroń swój klucz interfejsu API w aplikacjach przy użyciu usług internetowych

Przechowuj klucze interfejsu API poza kodem źródłowym aplikacji lub drzewem źródłowym. Jeśli umieścisz klucze interfejsu API lub jakiekolwiek inne informacje w zmiennych środowiskowych albo dodasz pliki, które są przechowywane oddzielnie, a następnie udostępnisz swój kod, klucze interfejsu API nie będą uwzględniane w udostępnionych plikach. Jest to szczególnie ważne, jeśli korzystasz z publicznego systemu zarządzania kodami źródłowymi, takiego jak GitHub.

Chroń swój klucz interfejsu API i tajny klucz podpisywania w aplikacjach mobilnych za pomocą usług internetowych lub statycznych interfejsów API

Aby chronić aplikacje mobilne, używaj bezpiecznego magazynu kluczy lub bezpiecznego serwera proxy:

  • Przechowuj klucz API lub tajny klucz podpisywania w bezpiecznym magazynie kluczy. Ten krok utrudnia pobieranie kluczy interfejsu API i innych danych prywatnych bezpośrednio z aplikacji.

  • Korzystaj z bezpiecznego serwera proxy. Serwer proxy zapewnia stałe źródło interakcji z odpowiednim interfejsem Google Maps Platform API. Więcej informacji o korzystaniu z serwera proxy znajdziesz w artykule Życie beztroskie: korzystanie z serwerów proxy w bibliotekach klienta interfejsu Google Data API.

    • Tworzenie żądań z Google Maps Platform na serwerze proxy. Nie zezwalaj klientom na przekazywanie dowolnych wywołań interfejsu API przez serwer proxy.

    • Po przetworzeniu odpowiedzi Google Maps Platform na serwerze proxy. Odfiltruj dane, których klient nie potrzebuje.

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

Jeśli wykryjesz nieautoryzowane użycie klucza interfejsu API, wykonaj te czynności:

  1. Ogranicz klucze: jeśli używasz tego samego klucza w wielu aplikacjach, przeprowadź migrację do wielu kluczy interfejsu API i używaj oddzielnych kluczy interfejsu API dla każdej aplikacji. Więcej informacji znajdziesz w artykule:

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

Zalecane ograniczenia aplikacji i interfejsu API

W poniższych sekcjach znajdziesz opis zastosowania odpowiednich ograniczeń dotyczących aplikacji i interfejsu API w przypadku każdego interfejsu API, pakietu SDK i usługi Google Maps Platform.

Zalecane ograniczenia interfejsu API

Poniższe wytyczne dotyczące ograniczeń interfejsów API mają zastosowanie do całej Google Maps Platform:

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

    • Jeśli aplikacja korzysta z pakietu SDK Miejsc na Androida lub pakietu SDK Miejsc na iOS, autoryzuj ten interfejs.

    • Jeśli aplikacja korzysta z interfejsu Maps JavaScript API, zawsze autoryzuj go w kluczu.

    • Jeśli używasz też poniższych usług interfejsu API JavaScript Map Google, musisz dodatkowo autoryzować te interfejsy API:

    Usługa Ograniczenie interfejsu API
    Usługa wyznaczania trasy, Maps JavaScript API Directions API
    Usługa macierzy odległości, Maps JavaScript API Distance Matrix API
    Usługa określania wysokości, Maps JavaScript API Elevation API
    Usługa geokodowania, Maps JavaScript API Geocoding API
    Biblioteka miejsc, Maps JavaScript API Places API

Oto kilka przykładów:

  • Korzystasz z pakietu SDK Maps na Androida i pakietu Miejsc dla Androida, więc uwzględnisz pakiet SDK Maps na Androida oraz interfejs Places API jako ograniczenia interfejsu API.

  • Twoja witryna korzysta z usługi Maps JavaScript API Elevation oraz Maps Static API, dlatego dodajesz ograniczenia dotyczące interfejsu API w przypadku tych interfejsów API:

    • Maps JavaScript API
    • Elevation API
    • Maps Static API

Zalecane ograniczenie aplikacji

witryny korzystające z interfejsu Maps JavaScript API lub statycznego interfejsu API Web.

W przypadku witryn używających usług JavaScript Map lub statycznych internetowych interfejsów API należy użyć ograniczenia aplikacji Websites.

Używaj na stronach internetowych za pomocą tych usług i interfejsów API JavaScript:

1 W przypadku aplikacji mobilnych rozważ użycie natywnego pakietu SDK Map na Androida i Map SDK na iOS.

2Zobacz też sekcję Ochrona aplikacji mobilnych przy użyciu usługi internetowej lub statycznych interfejsów API.

Strony internetowe z interfejsem Maps Embed API

Korzystanie z interfejsu API Map Google do umieszczenia na stronie jest bezpłatne, jednak w przypadku innych usług należy ograniczyć ich użycie.

Sprawdzona metoda: utwórz oddzielny klucz interfejsu API do umieszczania interfejsu Maps Embed API i ogranicz ten klucz do tylko interfejsu Maps Embed API. To ograniczenie wystarczająco chroni klucz, aby zapobiec jego nieautoryzowanemu użyciu w innych usługach Google.

Jeśli nie możesz oddzielić użycia interfejsu API umieszczania na stronie, oddziel go kluczem API, zabezpiecz go za pomocą ograniczenia aplikacji Websites.

Aplikacje i serwery korzystające z usług internetowych

W przypadku aplikacji i serwerów korzystających z usług internetowych używaj ograniczenia aplikacji IP addresses.

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

3 W przypadku aplikacji mobilnych rozważ użycie natywnego pakietu Places SDK na Androida i Places SDK na iOS.

Aplikacje na Androida

W przypadku aplikacji na Androida stosuj ograniczenie dotyczące aplikacji Android apps.

Używaj w przypadku aplikacji i serwerów, które korzystają z tych pakietów SDK:

Aplikacje na iOS

W przypadku aplikacji na iOS zastosuj ograniczenie iOS apps.

Używaj w przypadku aplikacji i serwerów, które korzystają z tych pakietów SDK: