Hướng dẫn bảo mật của Nền tảng Google Maps

Các ứng dụng và dự án sử dụng API và SDK của Nền tảng Google Maps phải sử dụng khoá API hoặc OAuth 2.0 (nếu được hỗ trợ) để tự xác thực.

Những phương pháp hay nhất này hướng dẫn bạn cách bảo mật quyền truy cập vào Nền tảng Maps.

Nếu bạn muốn sử dụng OAuth 2.0 để uỷ quyền cho lưu lượng truy cập giữa các máy chủ, hãy tìm chủ đề về OAuth trong tài liệu API. Hãy xem bài viết Sử dụng OAuth cho ứng dụng phía máy chủ để biết thêm chi tiết.

Ngoài việc áp dụng các quy định hạn chế đối với ứng dụng và khoá API, hãy tuân thủ mọi phương pháp bảo mật áp dụng cho các sản phẩm cụ thể của Nền tảng Google Maps. Ví dụ: hãy xem API JavaScript của Maps ở bên dưới trong phần Các ứng dụng và quy định hạn chế về API được đề xuất.

Nếu khoá API của bạn đang được sử dụng, hãy xem lại các đề xuất bên dưới trong phần Nếu bạn đang hạn chế một khoá API đang được sử dụng.

Để biết thêm thông tin chi tiết về chữ ký số do Maps Static API và Street View Static API hỗ trợ, hãy xem Hướng dẫn về chữ ký số.

Các phương pháp hay nhất được đề xuất

Để tăng cường bảo mật và tránh bị tính phí cho việc sử dụng trái phép, hãy làm theo các phương pháp hay nhất về bảo mật API sau đây cho tất cả API, SDK hoặc dịch vụ của Nền tảng Google Maps:

Hạn chế khoá API

Sử dụng các khoá API riêng biệt cho từng ứng dụng

Xoá khoá API không dùng đến

Kiểm tra mức sử dụng khoá API

Thận trọng khi xoay khoá API

Phân tách hoạt động sử dụng phía máy khách và phía máy chủ thành các dự án riêng biệt

Tắt các dịch vụ không dùng đến

Các đề xuất bổ sung cho ứng dụng phía máy khách

Sử dụng SDK phía máy khách

Bảo mật lệnh gọi dịch vụ web phía máy khách

Các đề xuất khác dành cho trang web hoặc ứng dụng phía máy khách sử dụng API web tĩnh

Bảo vệ hoạt động sử dụng Static Web API

Các đề xuất khác dành cho ứng dụng phía máy chủ sử dụng dịch vụ web

Bảo vệ khoá API dịch vụ web

Sử dụng OAuth cho ứng dụng phía máy chủ

Nếu bạn đang hạn chế hoặc xoay vòng một khoá API đang được sử dụng

  • Trước khi thay đổi khoá API, hãy Kiểm tra mức sử dụng khoá API. Bước này đặc biệt quan trọng nếu bạn đang thêm các quy tắc hạn chế cho một khoá đã được sử dụng trong ứng dụng phát hành chính thức.

  • Sau khi bạn thay đổi khoá, hãy cập nhật tất cả ứng dụng bằng khoá API mới nếu cần.

  • Nếu khoá API của bạn chưa bị xâm phạm và không bị lợi dụng, bạn có thể di chuyển ứng dụng sang nhiều khoá API mới theo tốc độ của riêng mình, không làm gì đến khoá API ban đầu cho đến khi bạn chỉ quan sát thấy một loại lưu lượng truy cập và khoá API có thể được hạn chế một cách an toàn bằng một loại hạn chế ứng dụng duy nhất mà không gây ra sự gián đoạn dịch vụ ngoài ý muốn.

    Để biết thêm hướng dẫn, hãy xem phần Di chuyển sang nhiều khoá API.

    Theo dõi mức sử dụng theo thời gian và xem thời điểm các API, loại nền tảng và miền cụ thể đã di chuyển khỏi khoá API cũ trước khi bạn chọn hạn chế hoặc xoá khoá cũ. Để biết thêm thông tin, hãy xem phần Báo cáo và giám sátChỉ số

  • Nếu khoá API của bạn bị xâm phạm, bạn cần phải hành động nhanh hơn để bảo mật khoá API và ngăn chặn hành vi sử dụng sai mục đích. Trong ứng dụng Android và iOS, các khoá sẽ không được thay thế cho đến khi khách hàng cập nhật ứng dụng. Việc cập nhật hoặc thay thế khoá trên trang web hoặc trong ứng dụng phía máy chủ đơn giản hơn nhiều, nhưng vẫn có thể yêu cầu bạn phải lập kế hoạch cẩn thận và làm việc nhanh chóng.

    Để biết thêm thông tin, hãy xem phần Xử lý việc sử dụng trái phép khoá API.

Thông tin khác

Các hạn chế đề xuất đối với ứng dụng và API

Hạn chế khoá API

Tốt nhất là bạn nên luôn hạn chế khoá API bằng một loại hạn chế ứng dụng và một hoặc nhiều hạn chế API. Để biết các hạn chế được đề xuất theo API, SDK hoặc dịch vụ JavaScript, hãy xem phần Hạn chế đề xuất đối với ứng dụng và API bên dưới.

  • Hạn chế về ứng dụng Bạn có thể giới hạn việc sử dụng khoá API ở một số nền tảng cụ thể: ứng dụng Android hoặc iOS, hoặc một số trang web cụ thể cho ứng dụng phía máy khách, hoặc một số địa chỉ IP hoặc mạng con CIDR cụ thể cho ứng dụng phía máy chủ phát lệnh gọi API REST của dịch vụ web.

    Bạn hạn chế một khoá bằng cách thêm một hoặc nhiều quy tắc hạn chế ứng dụng thuộc loại bạn muốn uỷ quyền. Sau đó, chỉ những yêu cầu bắt nguồn từ các nguồn này mới được phép.

  • Hạn chế về API Bạn có thể hạn chế những API, SDK hoặc dịch vụ của Google Maps Platform mà bạn có thể sử dụng khoá API. Các quy tắc hạn chế API chỉ cho phép các yêu cầu đối với các API và SDK mà bạn chỉ định. Đối với bất kỳ khoá API nào, bạn có thể chỉ định bao nhiêu quy tắc hạn chế API tuỳ ý. Danh sách API có sẵn bao gồm tất cả API được bật trên một dự án.

Đặt quy định hạn chế đối với ứng dụng cho khoá API

  1. Mở trang Thông tin xác thực của Nền tảng Google Maps trong Google Cloud Console.

  2. Chọn khoá API mà bạn muốn hạn chế.

  3. Trên trang Chỉnh sửa khoá API, trong mục Key restrictions (Hạn chế đối với khoá), hãy chọn Set an application restriction (Đặt hạn chế cho ứng dụng).

    Trang Chỉnh sửa khoá API

  4. Chọn một trong các loại hạn chế và cung cấp thông tin được yêu cầu theo danh sách hạn chế.

    Loại quy định hạn chế Mô tả
    Trang web Chỉ định một hoặc nhiều trang web giới thiệu.
    • Các lược đồ URI của trình giới thiệu được hỗ trợ phổ biến là httpshttp. Các giao thức khác không được đảm bảo hoạt động chính xác, vì các trình duyệt web hiện đại sẽ không gửi tiêu đề "Referer" trong các yêu cầu gửi đi vì lý do bảo mật.
    • Luôn cung cấp toàn bộ chuỗi liên kết giới thiệu, bao gồm cả giao thức, tên máy chủ và cổng không bắt buộc (ví dụ: https://google.com).
    • Bạn có thể sử dụng ký tự đại diện để uỷ quyền cho tất cả miền con. Ví dụ: https://*.google.com chấp nhận tất cả các trang web có đuôi là .google.com.
    • Hãy cẩn thận khi uỷ quyền cho trình giới thiệu đường dẫn đầy đủ, ví dụ: https://google.com/some/path, vì hầu hết trình duyệt web sẽ xoá đường dẫn khỏi các yêu cầu trên nhiều nguồn gốc vì lý do quyền riêng tư.
    địa chỉ IP Chỉ định một hoặc nhiều địa chỉ IPv4 hoặc IPv6 hoặc mạng con bằng ký hiệu CIDR. Địa chỉ IP phải khớp với địa chỉ nguồn mà máy chủ Nền tảng Google Maps ghi nhận. Nếu bạn sử dụng chuyển đổi địa chỉ mạng (NAT), địa chỉ này thường tương ứng với địa chỉ IP công khai của máy.
    Ứng dụng Android Thêm tên gói Android (từ tệp AndroidManifest.xml) và vân tay số của chứng chỉ ký SHA-1 của từng ứng dụng Android mà bạn muốn uỷ quyền. Nếu bạn sử dụng Tính năng ký ứng dụng của Play, để tìm nạp dấu vân tay chứng chỉ ký, hãy xem phần Hoạt động với nhà cung cấp API. Nếu bạn quản lý khoá ký của riêng mình, hãy xem phần Tự ký ứng dụng hoặc tham khảo hướng dẫn dành cho môi trường xây dựng của bạn.
    Ứng dụng iOS Thêm mã nhận dạng gói của từng ứng dụng iOS mà bạn muốn uỷ quyền.

    Để biết các đề xuất về hạn chế ứng dụng, hãy xem phần Hạn chế ứng dụng được đề xuất.

  5. Chọn Lưu.

Đặt hạn chế API cho khoá API

  1. Mở trang Thông tin xác thực của Nền tảng Google Maps trong Google Cloud Console.

  2. Chọn khoá API mà bạn muốn hạn chế.

  3. Trên trang Chỉnh sửa khoá API, trong mục Hạn chế đối với API:

    • Chọn Restrict key (Hạn chế khoá).

    • Mở Select APIs (Chọn API) rồi chọn các API hoặc SDK mà bạn muốn ứng dụng truy cập bằng khoá API.

    Nếu một API hoặc SDK không có trong danh sách, bạn cần bật API hoặc SDK đó. Để biết thông tin chi tiết, hãy xem phần Cách bật một hoặc nhiều API hoặc SDK.

    Hạn chế một API trên trang Chỉnh sửa khoá API

  4. Chọn Lưu.

    Quy tắc hạn chế này sẽ trở thành một phần trong định nghĩa khoá API sau bước này. Hãy nhớ cung cấp thông tin chi tiết phù hợp rồi chọn Lưu để lưu các quy định hạn chế đối với khoá API. Để biết thêm thông tin, hãy xem hướng dẫn Lấy khoá API trong tài liệu về API hoặc SDK cụ thể mà bạn quan tâm.

Để biết các hạn chế API được đề xuất, hãy xem phần Hạn chế API được đề xuất.

Kiểm tra mức sử dụng khoá API

Nếu bạn đang hạn chế khoá API sau khi tạo hoặc nếu bạn muốn xem khoá đang sử dụng API nào để có thể hạn chế các khoá đó, bạn nên kiểm tra mức sử dụng khoá API. Các bước này cho bạn biết khoá API đang được sử dụng trong những dịch vụ và phương thức API nào. Nếu bạn thấy bất kỳ hoạt động sử dụng nào ngoài các dịch vụ của Google Maps Platform, hãy điều tra để xác định xem bạn có cần thêm các quy định hạn chế khác để tránh việc sử dụng không mong muốn hay không. Bạn có thể sử dụng trình khám phá chỉ số Google Maps Platform Cloud Console để xác định những hạn chế về API và ứng dụng sẽ áp dụng cho khoá API của mình:

Xác định các API sử dụng khoá API của bạn

Các báo cáo chỉ số sau đây cho phép bạn xác định những API nào đang sử dụng khoá API của bạn. Bạn có thể sử dụng các báo cáo này để làm những việc sau:

  • Xem cách khoá API của bạn được sử dụng
  • Phát hiện mức sử dụng ngoài dự kiến
  • Giúp xác minh xem có thể xoá một khoá không dùng đến một cách an toàn hay không. Để biết thông tin về cách xoá khoá API, hãy xem phần Xoá khoá API không dùng đến.

Khi áp dụng các quy tắc hạn chế đối với API, hãy sử dụng các báo cáo này để tạo danh sách API cần uỷ quyền hoặc để xác thực các đề xuất hạn chế đối với khoá API được tạo tự động. Để biết thêm thông tin về các quy định hạn chế được đề xuất, hãy xem bài viết Áp dụng các quy định hạn chế được đề xuất. Để biết thêm thông tin về cách sử dụng Trình khám phá chỉ số, hãy xem bài viết Tạo biểu đồ bằng Trình khám phá chỉ số.

  1. Chuyển đến Trình khám phá chỉ số của Google Cloud Console

  2. Đăng nhập rồi chọn dự án cho các khoá API mà bạn muốn kiểm tra.

  3. Chuyển đến trang Trình khám phá chỉ số cho loại API của bạn:

  4. Kiểm tra từng khoá API:

    1. Chọn THÊM BỘ LỌC.

    2. Chọn nhãn credential_id.

    3. Chọn value (giá trị) tương ứng với khoá bạn muốn kiểm tra.

    4. Lưu ý API nào đang sử dụng khoá API này và xác nhận việc sử dụng là dự kiến.

    5. Sau khi hoàn tất, hãy chọn biểu tượng Xoá bộ lọc ở cuối dòng bộ lọc đang hoạt động để xoá bộ lọc bổ sung.

  5. Lặp lại cho mọi khoá còn lại.

  6. Chỉ cho phép khoá API của bạn sử dụng các API đang được dùng.

  7. Nếu bạn phát hiện thấy hành vi sử dụng trái phép, hãy xem phần Xử lý hành vi sử dụng trái phép khoá API.

Chọn đúng loại hạn chế ứng dụng bằng Trình khám phá chỉ số

Sau khi bạn xác minh và thực hiện mọi hành động cần thiết để đảm bảo khoá API chỉ được dùng cho các dịch vụ trên Nền tảng Google Maps mà khoá đó đang sử dụng, hãy đảm bảo khoá API có các hạn chế ứng dụng chính xác.

Nếu khoá API của bạn có các quy tắc hạn chế được đề xuất đối với khoá API, hãy áp dụng các quy tắc đó. Để biết thêm thông tin, hãy xem phần Áp dụng các quy tắc hạn chế được đề xuất đối với khoá API.

Nếu khoá API của bạn không có đề xuất hạn chế, hãy xác định loại hạn chế ứng dụng cần áp dụng, dựa trên platform_type được báo cáo bằng Trình khám phá chỉ số:

  1. Chuyển đến Trình khám phá chỉ số của Google Cloud Console

  2. Đăng nhập và chọn dự án cho các API mà bạn muốn kiểm tra.

  3. Truy cập vào trang Trình khám phá chỉ số này: Trình khám phá chỉ số.

  4. Kiểm tra từng khoá API:

    1. Chọn THÊM BỘ LỌC.

    2. Chọn nhãn credential_id.

    3. Chọn value (giá trị) tương ứng với khoá bạn muốn kiểm tra.

    4. Sau khi hoàn tất, hãy chọn biểu tượng Xoá bộ lọc ở cuối dòng bộ lọc đang hoạt động để xoá bộ lọc bổ sung.

  5. Lặp lại cho mọi khoá còn lại.

  6. Sau khi bạn có loại nền tảng cho khoá API, hãy áp dụng quy tắc hạn chế ứng dụng cho platform_type đó:

    PLATFORM_TYPE_JS : Áp dụng các hạn chế về trang web cho khoá.

    PLATFORM_TYPE_ANDROID : Áp dụng các hạn chế đối với ứng dụng Android trên khoá.

    PLATFORM_TYPE_IOS : Áp dụng các quy định hạn chế đối với ứng dụng iOS trên khoá.

    PLATFORM_TYPE_WEBSERVICE : Bạn có thể phải dựa vào các quy tắc hạn chế về địa chỉ IP trên khoá để hạn chế khoá đó đúng cách.

    Để biết các đề xuất về API tĩnh của Maps và API tĩnh của Chế độ xem đường phố, hãy xem phần Bảo vệ hoạt động sử dụng API web tĩnh.

    Để biết các đề xuất về Maps Embed API, hãy xem bài viết Các trang web có Maps Embed API.

    Khoá API của tôi đang sử dụng nhiều loại nền tảng: Bạn không thể bảo mật đúng cách lưu lượng truy cập của mình chỉ bằng một khoá API. Bạn cần chuyển sang nhiều khoá API. Để biết thêm thông tin, hãy xem phần Di chuyển sang nhiều khoá API.

Sử dụng các khoá API riêng biệt cho từng ứng dụng

Phương pháp này giới hạn phạm vi của mỗi khoá. Nếu một khoá API bị xâm phạm, bạn có thể xoá hoặc xoay khoá bị ảnh hưởng mà không cần cập nhật các khoá API khác. Bạn có thể tạo tối đa 300 khoá API cho mỗi dự án. Để biết thêm thông tin, hãy xem phần Giới hạn về khoá API.

Mặc dù một khoá API cho mỗi ứng dụng là lý tưởng cho mục đích bảo mật, nhưng bạn có thể sử dụng các khoá bị hạn chế trên nhiều ứng dụng, miễn là các ứng dụng đó sử dụng cùng một loại hạn chế ứng dụng.

Áp dụng các quy tắc hạn chế được đề xuất đối với khoá API

Đối với một số chủ sở hữu dự án, người chỉnh sửa và quản trị viên khoá API, Google Cloud Console đề xuất các hạn chế cụ thể đối với khoá API không bị hạn chế dựa trên hoạt động và mức sử dụng của họ trên Google Maps Platform.

Nếu có, các đề xuất sẽ xuất hiện dưới dạng các tuỳ chọn được điền sẵn trên trang Thông tin xác thực của Nền tảng Google Maps.

Các API và SDK của Nền tảng Google Maps được đề xuất tự động hỗ trợ

  • API Maps JavaScript, bao gồm cả Dịch vụ chỉ đường (Cũ), Dịch vụ ma trận khoảng cách (Cũ), Dịch vụ độ cao, Dịch vụ mã hoá địa lý Lớp địa điểm, Tiện ích tự động điền địa điểm (Mới), API dữ liệu tự động điền địa điểm, Thư viện địa điểm, Dịch vụ địa điểm và Tiện ích tự động điền địa điểm

  • Maps Static API và Street View Static API

  • API nhúng cho Maps

  • SDK Bản đồ dành cho Android, SDK Địa điểm dành cho Android và SDK Điều hướng dành cho Android

  • SDK Bản đồ dành cho iOS, SDK Địa điểm dành cho iOS, SDK Địa điểm Swift dành cho iOS và SDK Điều hướng dành cho iOS

Lý do bạn có thể không thấy đề xuất hoặc đề xuất chưa hoàn chỉnh

Lý do bạn không thấy đề xuất

  • Bạn (cũng) đang sử dụng khoá API trên các dịch vụ khác của Nền tảng Google Maps hoặc các dịch vụ của Nền tảng Maps chưa được hỗ trợ bởi các đề xuất tự động.

    Nếu bạn thấy mức sử dụng trên các dịch vụ khác, đừng áp dụng đề xuất mà trước tiên hãy làm như sau:

    1. Xác minh rằng mức sử dụng API mà bạn thấy trong trình khám phá chỉ số của Google Cloud Console là hợp lệ.

    2. Thêm các dịch vụ bị thiếu vào danh sách API cần được uỷ quyền theo cách thủ công.

    3. Thêm theo cách thủ công mọi hạn chế ứng dụng bị thiếu đối với các dịch vụ được thêm vào danh sách API. Nếu khoá API khác mà bạn thêm vào yêu cầu một loại hạn chế ứng dụng khác, hãy xem phần Di chuyển sang nhiều khoá API.

  • Khoá API của bạn không được dùng trong các SDK hoặc API phía máy khách.

  • Bạn sử dụng khoá API trong một ứng dụng hoặc trang web có số lượng người dùng thấp và không có hoạt động sử dụng trong 60 ngày qua.

  • Bạn mới tạo một khoá mới hoặc mới triển khai một khoá hiện có trong một ứng dụng mới. Nếu vậy, bạn chỉ cần đợi thêm vài ngày để các đề xuất cập nhật.

  • Bạn đang sử dụng khoá API trong nhiều ứng dụng yêu cầu các loại hạn chế ứng dụng xung đột với nhau, hoặc bạn đang sử dụng cùng một khoá API trong quá nhiều ứng dụng hoặc trang web. Trong cả hai trường hợp, tốt nhất bạn nên di chuyển sang nhiều khoá. Để biết thêm thông tin chi tiết, hãy xem phần Di chuyển sang nhiều khoá API.

Lý do bạn thấy một đề xuất chưa hoàn chỉnh

  • Bạn sử dụng khoá API trong một ứng dụng hoặc trang web có số lượng người dùng thấp và không có hoạt động sử dụng trong 60 ngày qua.

  • Bạn mới rất gần đây bắt đầu sử dụng một khoá hiện có trên một API hoặc dịch vụ mới và quy trình đề xuất hạn chế khoá API tự động chưa xử lý các chỉ số sử dụng đã cập nhật. Quá trình truyền tải các chỉ số về mức sử dụng có thể mất vài ngày.

    Nếu bạn thấy mức sử dụng trên các dịch vụ khác, đừng áp dụng đề xuất mà trước tiên hãy làm như sau:

    1. Xác minh rằng mức sử dụng API mà bạn thấy trong trình khám phá chỉ số của Google Cloud Console là hợp lệ.

    2. Thêm các dịch vụ bị thiếu vào danh sách API cần được uỷ quyền theo cách thủ công.

    3. Thêm theo cách thủ công mọi quy định hạn chế ứng dụng bị thiếu đối với các dịch vụ được thêm vào danh sách API. Nếu khoá API khác mà bạn thêm vào yêu cầu một loại hạn chế ứng dụng khác, hãy xem phần Di chuyển sang nhiều khoá API.

    4. Trừ phi bạn cần khẩn cấp hạn chế một khoá, chẳng hạn như do việc sử dụng trái phép, bạn có thể cũng phải đợi một hoặc hai ngày để nhận được các đề xuất.

Lý do khiến bạn có thể thấy các đề xuất không xuất hiện trong biểu đồ

  • Ứng dụng hoặc trang web của bạn chỉ gửi các luồng lưu lượng truy cập rất ngắn. Trong trường hợp này, hãy chuyển từ chế độ xem Biểu đồ sang Bảng hoặc Cả hai, vì cách sử dụng vẫn hiển thị trong chú giải. Để biết thêm thông tin, hãy xem phần Bật/tắt chú giải đầy đủ của biểu đồ.

  • Lưu lượng truy cập của bạn đến từ Maps Embed API. Để biết hướng dẫn, hãy xem phần Xác định các API sử dụng khoá API của bạn.

  • Lưu lượng truy cập từ ứng dụng hoặc trang web nằm ngoài phạm vi ngày có trong trình khám phá Chỉ số của Google Cloud Console.

  1. Mở trang Thông tin xác thực của Nền tảng Google Maps trong Google Cloud Console.

  2. Chọn Áp dụng các quy định hạn chế được đề xuất (nếu có).

    Áp dụng các quy định hạn chế được đề xuất

  3. Chọn Kiểm tra mức sử dụng API để xác minh khoá API đang được sử dụng trên những dịch vụ nào. Nếu bạn thấy các dịch vụ không phải của Nền tảng Google Maps, hãy tạm dừng để xem xét các bước đề xuất ở trên theo cách thủ công. Xem các bước khắc phục sự cố ở đầu phần Áp dụng các hạn chế đề xuất đối với khoá API.

  4. Kiểm tra kỹ để đảm bảo rằng các quy tắc hạn chế được điền sẵn khớp với các trang web và ứng dụng mà bạn dự kiến sẽ sử dụng khoá API.

    Phương pháp hay nhất: Ghi lại và xoá mọi hạn chế về ứng dụng hoặc API không liên kết với dịch vụ của bạn. Nếu có vấn đề xảy ra do một phần phụ thuộc không mong muốn, bạn có thể thêm lại các ứng dụng hoặc API bắt buộc.

    • Nếu bạn nhận thấy một ứng dụng, trang web hoặc API rõ ràng bị thiếu trong đề xuất, hãy thêm ứng dụng, trang web hoặc API đó theo cách thủ công hoặc đợi vài ngày để đề xuất cập nhật.

    • Nếu bạn cần được trợ giúp thêm về đề xuất được đưa ra, hãy liên hệ với nhóm hỗ trợ.

  5. Chọn Áp dụng.

Những việc cần làm nếu đơn đăng ký của bạn bị từ chối sau khi áp dụng đề xuất

Nếu bạn nhận thấy một ứng dụng hoặc trang web bị từ chối sau khi áp dụng một quy định hạn chế, hãy tìm quy định hạn chế ứng dụng mà bạn cần thêm vào thông báo lỗi phản hồi API.

API và SDK phía máy khách

Ứng dụng dựa trên trình duyệt và webview

Các trình duyệt hiện đại thường loại bỏ tiêu đề Referer trong yêu cầu trên nhiều nguồn gốc vì lý do bảo mật, thường là loại bỏ tiêu đề này xuống Origin. Tuy nhiên, hành vi chính xác còn tuỳ thuộc vào referrer-policy được áp dụng của trang web lưu trữ và cũng có thể thay đổi tuỳ theo trình duyệt và phiên bản của người dùng.

Các ứng dụng web sử dụng giao thức URI mờ hoặc cục bộ để tải nội dung thường sẽ có trình duyệt hiển thị hoặc webview xoá hoàn toàn tiêu đề Referer khỏi mọi lệnh gọi đi, điều này có thể khiến các yêu cầu không thành công khi sử dụng khoá API có các hạn chế về trang web.

Để biết thêm hướng dẫn, hãy xem phần Lưu trữ ứng dụng dựa trên trình duyệt trên máy chủ.

Hướng dẫn khắc phục sự cố cho các ứng dụng dựa trên trình duyệt và webview:

  • Đối với API JavaScript của Maps, hãy xem bảng điều khiển gỡ lỗi của trình duyệt để biết chi tiết về cách uỷ quyền cho ứng dụng của bạn.

    Các giao thức URI lạ được hỗ trợ một phần. Nếu một số phần của ứng dụng không hoạt động theo giao thức URI lạ, ngay cả sau khi uỷ quyền cho trình giới thiệu bắt buộc, bạn có thể cần phải lưu trữ ứng dụng từ xa trên máy chủ và tải ứng dụng đó qua HTTPS (hoặc HTTP).

    Nếu bạn cần được trợ giúp về các giao thức URI lạ, hãy liên hệ với nhóm hỗ trợ.

  • Các API khác của Nền tảng Maps thường sẽ trả về trình giới thiệu mà bạn cần uỷ quyền trong phản hồi lỗi API, giả sử ứng dụng đã gửi thông tin này cùng với yêu cầu bị từ chối.

    Các giao thức URI lạ không được hỗ trợ.

Ứng dụng Android

Sử dụng Cầu gỡ lỗi Android (adb) hoặc Logcat

Ứng dụng iOS

Xem phần Xem thông điệp nhật ký

Ứng dụng gọi trực tiếp dịch vụ web

Đối với các ứng dụng gọi API REST HTTPS của Maps Platform hoặc các điểm cuối gRPC trực tiếp mà không có SDK Maps Platform phía máy khách, hãy xem nội dung bên dưới:

Ứng dụng Android và iOS

Nếu ứng dụng Android hoặc iOS của bạn gọi trực tiếp các dịch vụ của Nền tảng Maps mà không sử dụng bất kỳ SDK ứng dụng nào hiện có của Nền tảng Google Maps, hãy xem phần Ứng dụng AndroidỨng dụng iOS để biết thêm các mẹo khắc phục sự cố và Gọi dịch vụ web phía máy khách một cách an toàn để biết các phương pháp bảo mật tốt nhất hiện có cho các trường hợp sử dụng trên thiết bị di động.

Nếu ứng dụng của bạn ghi lại phản hồi lỗi API Maps Platform, thì hướng dẫn ở trên cho SDK phía máy khách cũng có thể hữu ích trong việc khắc phục sự cố xác thực.

Ứng dụng phía máy chủ

Ứng dụng phía máy chủ dựa vào khoá API được bảo mật tốt nhất thông qua các quy tắc hạn chế về địa chỉ IP. Nếu bạn đã áp dụng các quy định hạn chế về địa chỉ IP cho khoá và nhật ký dịch vụ phản hồi lỗi API Maps Platform, hãy kiểm tra nhật ký hệ thống để biết thêm thông tin. Phản hồi lỗi sẽ bao gồm địa chỉ IP của máy chủ mà bạn cần uỷ quyền.

Ứng dụng dựa trên trình duyệt hoặc webview

Mặc dù API Maps Static, API Street View Static và các API gần đây của Nền tảng Google Maps cũng sẽ hỗ trợ các hạn chế về trình giới thiệu, nhưng xin lưu ý rằng trình duyệt web hoặc thành phần hiển thị web có thể sẽ hạn chế tiêu đề Referer thành Origin đối với các yêu cầu trên nhiều nguồn gốc và có thể sẽ bỏ qua việc gửi tiêu đề này, ví dụ: đối với các tài nguyên được truy cập cục bộ hoặc đối với các tài nguyên được phân phát qua các giao thức khác ngoài HTTP hoặc HTTPS.

Nếu bạn không thể sử dụng API JavaScript của Maps trong ứng dụng và các quy định hạn chế về trang web không hoạt động, hãy xem phần Gọi dịch vụ web phía máy khách một cách an toàn để biết cách đưa ra lệnh gọi dịch vụ web của Nền tảng Maps một cách an toàn từ trong ứng dụng phía máy khách dựa trên trình duyệt.

Kiểm tra các quy định hạn chế đối với API

Để kiểm tra các quy tắc hạn chế bắt buộc đối với API, hãy xem bài viết Xác định các API sử dụng khoá API.

Nếu bạn không xác định được nên áp dụng quy định hạn chế nào, hãy làm như sau:

  1. Ghi lại các quy định hạn chế hiện tại để tham khảo sau này.
  2. Tạm xoá các video đó trong khi bạn điều tra vấn đề. Bạn có thể kiểm tra mức sử dụng theo thời gian bằng cách làm theo các bước trong bài viết Kiểm tra mức sử dụng khoá API.
  3. Nếu cần, hãy liên hệ với nhóm hỗ trợ.

Xoá khoá API không dùng đến

Trước khi xoá khoá API, hãy đảm bảo rằng khoá đó không được dùng trong môi trường thực tế. Nếu không có lưu lượng truy cập thành công, thì bạn có thể xoá khoá một cách an toàn. Để biết thêm thông tin, hãy xem bài viết Kiểm tra mức sử dụng khoá API.

Cách xoá khoá API:

  1. Mở trang Thông tin xác thực của Nền tảng Google Maps trong Google Cloud Console.

  2. Chọn khoá API mà bạn muốn xoá.

  3. Chọn nút Xoá ở gần đầu trang.

  4. Trên trang Xoá thông tin xác thực, hãy chọn Xoá.

    Quá trình xoá khoá API sẽ mất vài phút để áp dụng. Sau khi quá trình truyền tải hoàn tất, mọi lưu lượng truy cập sử dụng khoá API đã xoá sẽ bị từ chối.

Hãy cẩn thận khi xoay khoá API

Việc xoay khoá API sẽ tạo một khoá mới có tất cả các quy tắc hạn chế của khoá cũ. Trong khoảng thời gian này, cả khoá cũ và khoá mới đều được chấp nhận, cho phép bạn di chuyển ứng dụng để sử dụng khoá mới.

Trước khi xoay khoá API:

  • Trước tiên, hãy thử hạn chế khoá API như mô tả trong phần Hạn chế khoá API.

  • Nếu không thể hạn chế khoá API do các loại hạn chế ứng dụng xung đột, hãy di chuyển sang nhiều khoá mới (bị hạn chế) như mô tả trong phần Di chuyển sang nhiều khoá API. Việc di chuyển cho phép bạn kiểm soát tiến trình di chuyển và triển khai các khoá API mới.

Nếu không thể thực hiện các đề xuất trước đó và bạn phải xoay khoá API để ngăn chặn việc sử dụng trái phép, hãy làm theo các bước sau:

  1. Mở trang Thông tin xác thực của Nền tảng Google Maps trong Google Cloud Console.

  2. Mở khoá API mà bạn muốn xoay.

  3. Ở đầu trang, hãy chọn Phím xoay.

  4. Bạn có thể thay đổi tên khoá API (không bắt buộc).

  5. Chọn Tạo.

  6. Cập nhật ứng dụng của bạn để sử dụng khoá mới.

Sau khi bạn cập nhật ứng dụng để sử dụng khoá mới, hãy xoá khoá cũ bằng cách nhấp vào nút Xoá khoá trước đó trong mục Khoá trước đó trên trang khoá API mới.

Di chuyển sang nhiều khoá API

Để di chuyển từ việc sử dụng một khoá API cho nhiều ứng dụng sang một khoá API duy nhất cho mỗi ứng dụng, hãy làm như sau:

  1. Xác định những ứng dụng cần khoá mới:

    • Ứng dụng web là loại ứng dụng dễ cập nhật nhất vì bạn kiểm soát tất cả mã. Lên kế hoạch cập nhật tất cả khoá của ứng dụng dựa trên web.
    • Ứng dụng di động khó hơn nhiều vì khách hàng phải cập nhật ứng dụng trước khi có thể sử dụng khoá mới.
  2. Tạo và hạn chế các khoá mới: Thêm cả quy tắc hạn chế ứng dụng và ít nhất một quy tắc hạn chế API. Để biết thêm thông tin, hãy xem phần Các phương pháp hay nhất được đề xuất.

  3. Thêm khoá mới vào ứng dụng: Đối với ứng dụng di động, quá trình này có thể mất nhiều tháng cho đến khi tất cả người dùng cập nhật lên ứng dụng mới nhất có khoá API mới.

Tách hoạt động sử dụng phía máy khách và phía máy chủ thành các dự án riêng biệt

Nếu bạn cần gọi các dịch vụ của Nền tảng Google Maps từ cả ứng dụng phía máy chủ và trực tiếp từ ứng dụng phía máy khách chạy trên thiết bị của người dùng cuối, thì Google khuyên bạn nên chia nhỏ mức sử dụng giữa hai dự án riêng biệt.

Phương pháp này cho phép bạn áp dụng các hạn mức hạn mức thích hợp cho mỗi phút, mỗi người dùng trên hầu hết các dịch vụ của Nền tảng Google Maps trên dự án phía máy khách, giúp đảm bảo rằng tất cả người dùng cuối đều nhận được phần chia sẻ công bằng trong hạn mức tổng thể của dự án mà không ảnh hưởng đến nhau.

Tuy nhiên, vì các quy định hạn mức theo người dùng ảnh hưởng đến cả ứng dụng phía máy khách và phía máy chủ, nên nếu bạn cũng yêu cầu băng thông cao cho các công việc phía máy chủ, hãy thiết lập một dự án riêng cho trường hợp sử dụng này, được định cấu hình với hạn mức theo người dùng cao hơn hoặc không có hạn mức.

Tắt các dịch vụ không dùng đến

Đừng để các dịch vụ không dùng đến được bật trên một dự án, vì việc này dễ bị lợi dụng, đặc biệt là nếu bạn chưa hạn chế tất cả khoá API công khai của mình. Tốt nhất là bạn chỉ nên bật một dịch vụ trên dự án khi ứng dụng của bạn cần đến dịch vụ đó.

Việc thêm các quy tắc hạn chế API vào một khoá sẽ ngăn việc sử dụng khoá đó trên các dịch vụ mà khoá đó chưa được uỷ quyền, nhưng các quy tắc hạn chế API chỉ áp dụng cho khoá cụ thể đó. Tắt một dịch vụ ở cấp dự án để ngăn chặn việc sử dụng trái phép dịch vụ trên bất kỳ khoá nào được liên kết với dự án.

Sử dụng SDK phía máy khách

Khi sử dụng các SDK Nền tảng Google Maps phía máy khách được cung cấp, bạn sẽ luôn có thể áp dụng các quy tắc hạn chế thích hợp cho khoá API để đảm bảo việc sử dụng dịch vụ của mình.

Việc sử dụng SDK phía máy khách cũng sẽ cho phép bạn áp dụng cơ chế bảo mật nâng cao hơn, chẳng hạn như tính năng Kiểm tra ứng dụng Firebase trên các nền tảng API của Maps hỗ trợ tính năng này. Hãy xem bài viết Sử dụng tính năng Kiểm tra ứng dụng để bảo mật khoá API để biết thêm thông tin chi tiết.

Nếu nền tảng của bạn không có SDK phía máy khách, hãy xem phần Bảo mật các lệnh gọi dịch vụ web phía máy khách.

Để biết khả năng cung cấp SDK Nền tảng Google Maps phía máy khách cho các nền tảng khác nhau, hãy xem nội dung Các hạn chế về API và ứng dụng được đề xuất.

Bảo vệ hoạt động sử dụng API web tĩnh

API web tĩnh, chẳng hạn như API tĩnh của Maps và API tĩnh của Chế độ xem đường phố, tương tự như các lệnh gọi API dịch vụ web.

Bạn gọi cả hai bằng API REST HTTPS và thường tạo URL yêu cầu API trên máy chủ. Tuy nhiên, thay vì trả về phản hồi JSON, API web tĩnh sẽ tạo một hình ảnh mà bạn có thể nhúng vào mã HTML đã tạo. Quan trọng hơn, thường thì ứng dụng của người dùng cuối, chứ không phải máy chủ, sẽ gọi dịch vụ Nền tảng Google Maps.

Sử dụng chữ ký số

Tốt nhất là bạn nên luôn sử dụng chữ ký số cùng với khoá API. Ngoài ra, hãy xem xét số lượng yêu cầu chưa ký mà bạn muốn cho phép mỗi ngày và điều chỉnh hạn mức yêu cầu chưa ký cho phù hợp.

Để biết thêm thông tin chi tiết về chữ ký số, hãy xem Hướng dẫn về chữ ký số.

Bảo vệ khoá ký của bạn

Để bảo vệ API web tĩnh, đừng nhúng các khoá ký API trực tiếp vào mã hoặc trong cây nguồn, cũng như đừng hiển thị các khoá này trong các ứng dụng phía máy khách. Hãy làm theo các phương pháp hay nhất sau đây để bảo vệ bí mật ký của bạn:

  • Tạo URL yêu cầu API Maps Static và API Street View Static đã ký phía máy chủ khi phân phát trang web hoặc để phản hồi yêu cầu từ ứng dụng di động.

    Đối với nội dung web tĩnh, bạn có thể sử dụng tiện ích Ký URL ngay trên trang Thông tin xác thực của Nền tảng Maps trên Cloud Console.

    Đối với nội dung web động, hãy xem mã mẫu ký yêu cầu URL hiện có.

  • Lưu trữ bí mật ký bên ngoài mã nguồn và cây nguồn của ứng dụng. Nếu bạn đặt khoá ký hoặc bất kỳ thông tin riêng tư nào khác vào các biến môi trường hoặc đưa vào các tệp được lưu trữ riêng biệt, sau đó chia sẻ mã của mình, thì khoá ký sẽ không có trong các tệp được chia sẻ. Nếu bạn lưu trữ khoá ký hoặc bất kỳ thông tin riêng tư nào khác trong tệp, hãy lưu trữ các tệp đó bên ngoài cây nguồn của ứng dụng để khoá ký không nằm trong hệ thống kiểm soát mã nguồn. Việc phòng ngừa này đặc biệt quan trọng nếu bạn sử dụng một hệ thống quản lý mã nguồn công khai, chẳng hạn như GitHub.

Bảo vệ khoá API dịch vụ web

Để sử dụng an toàn các API và dịch vụ của Nền tảng Google Maps từ các ứng dụng phía máy khách, hãy xem phần Sử dụng SDK phía máy kháchBảo mật các lệnh gọi dịch vụ web phía máy khách.

Lưu trữ khoá API bên ngoài mã nguồn hoặc cây nguồn của ứng dụng. Nếu bạn đặt khoá API hoặc bất kỳ thông tin nào khác vào các biến môi trường hoặc đưa vào các tệp được lưu trữ riêng biệt, sau đó chia sẻ mã của mình, thì khoá API sẽ không có trong các tệp được chia sẻ. Điều này đặc biệt quan trọng nếu bạn sử dụng một hệ thống quản lý mã nguồn công khai, chẳng hạn như GitHub.

Để bảo vệ khoá API dịch vụ web của bạn khỏi việc sử dụng do nhầm lẫn, bạn nên áp dụng các hạn chế về API cho mọi khoá dùng cho Nền tảng Maps. Ngoài ra, việc áp dụng các quy tắc hạn chế về địa chỉ IP cho khoá dịch vụ web cũng sẽ giúp bảo vệ khoá đó khỏi việc sử dụng trái phép từ các địa chỉ IP nguồn khác, ngay cả khi khoá vô tình bị rò rỉ.

Sử dụng OAuth cho ứng dụng phía máy chủ

OAuth 2.0 là một tiêu chuẩn mở để uỷ quyền truy cập.

Mặc dù giao thức OAuth 2.0 hỗ trợ các trường hợp sử dụng mà người dùng cuối uỷ quyền cho một ứng dụng thay mặt họ truy cập vào dữ liệu cá nhân, nhưng trường hợp sử dụng dự kiến cho OAuth 2.0 với Maps Platform là để nhà phát triển sử dụng mã thông báo truy cập tạm thời nhằm uỷ quyền cho ứng dụng gọi một API thay mặt cho tài khoản dịch vụ của dự án Google Cloud với các quyền của tài khoản dịch vụ.

Vì tài khoản dịch vụ có thể có các quyền cực kỳ rộng, nên bạn nên sử dụng OAuth 2.0 để uỷ quyền cho các lệnh gọi giữa máy chủ giữa các ứng dụng phía máy chủ đáng tin cậy của nhà phát triển và máy chủ của Nền tảng Maps của Google.

Đối với các ứng dụng phía máy khách chạy trên thiết bị của người dùng cuối, bạn nên sử dụng các phương thức xác thực khác, chẳng hạn như khoá API.

Nếu bạn muốn sử dụng OAuth 2.0 để uỷ quyền lưu lượng truy cập từ máy chủ đến máy chủ, hãy tìm chủ đề về OAuth trong tài liệu API.

Ví dụ: sau đây là chủ đề về OAuth cho API Xác thực địa chỉ.

Bảo mật các lệnh gọi dịch vụ web phía máy khách

Nếu không có SDK phía máy khách, hãy xem các đề xuất bên dưới.

Sử dụng máy chủ proxy

Việc sử dụng máy chủ proxy bảo mật cung cấp một nguồn đáng tin cậy để tương tác với điểm cuối dịch vụ web của Nền tảng Google Maps từ một ứng dụng phía máy khách mà không tiết lộ khoá API, khoá ký hoặc tài khoản dịch vụ Google Cloud cho người dùng trái phép.

Các điểm chính:

*   Construct your Google Maps Platform requests on the proxy server.
    **Don't** allow clients to relay arbitrary API calls using the proxy.

*   Post-process the Google Maps Platform responses on your proxy server.
Filter out data that the client doesn't need.

Để biết thêm thông tin về cách sử dụng máy chủ proxy, hãy xem bài viết Trải nghiệm gián tiếp: Sử dụng máy chủ proxy với Thư viện ứng dụng API Dữ liệu của Google.

Bảo mật các lệnh gọi dịch vụ web trực tiếp dành cho thiết bị di động

Nếu bạn không thể thiết lập máy chủ proxy bảo mật cho ứng dụng phía máy khách, hãy bảo mật ứng dụng của bạn bằng các bước sau:

  1. Sử dụng tiêu đề HTTP:

    • Android: Sử dụng tiêu đề HTTP X-Android-PackageX-Android-Cert.

    • iOS: Sử dụng tiêu đề HTTP X-Ios-Bundle-Identifier.

  2. Thêm các quy tắc hạn chế tương ứng cho ứng dụng vào khoá Android hoặc iOS.

  3. Trước khi bạn cân nhắc việc đưa ra lệnh gọi trực tiếp từ ứng dụng di động đến dịch vụ web API REST của Nền tảng Google Maps, hãy xác minh rằng các yêu cầu có giá trị nhận dạng ứng dụng Android hoặc iOS không chính xác sẽ bị từ chối.

    Nếu các hạn chế về ứng dụng Android và iOS không được hỗ trợ trên điểm cuối đã kiểm thử, thì bạn nên sử dụng máy chủ proxy bảo mật giữa ứng dụng di động và điểm cuối dịch vụ web của Nền tảng Google Maps.

Mẹo dành cho ứng dụng Android:

  • Trước khi tích hợp ứng dụng Android với các dịch vụ của Google Maps Platform, hãy xác minh rằng mã ứng dụng (còn gọi là tên gói) của bạn được định dạng đúng cách. Để biết thông tin chi tiết, hãy xem phần Định cấu hình mô-đun ứng dụng trong tài liệu Android.

  • Để truyền X-Android-Package trực tiếp từ ứng dụng, hãy tra cứu bằng cách lập trình bằng Context.getPackageName().

  • Để truyền X-Android-Cert trực tiếp từ các ứng dụng, hãy tính toán vân tay số SHA-1 bắt buộc của các chứng chỉ ký ứng dụng. Bạn có thể truy cập vào các chứng chỉ này thông qua PackageInfo.signingInfo.

  • Nếu bạn uỷ quyền cho ứng dụng Android bằng Google Cloud Console, hãy lưu ý rằng giao diện người dùng yêu cầu vân tay SHA-1 phải là một chuỗi được phân tách bằng dấu hai chấm, ví dụ: 00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF:00:11:22:33. Tuy nhiên, công cụ gcloud và API khoá API yêu cầu chuỗi thập lục phân không có dấu phân cách.

Mẹo dành cho ứng dụng iOS:

  • Trước khi tích hợp ứng dụng iOS với các dịch vụ của Google Maps Platform, hãy xác minh rằng Mã gói của bạn được định dạng chính xác.

  • Thông thường, bạn phải luôn truyền Mã nhận dạng gói của gói chính trong tiêu đề X-Ios-Bundle-Identifier khi uỷ quyền cho ứng dụng iOS.

Để biết thêm thông tin, hãy tham khảo các bài viết Quản lý khoá APISử dụng khoá API để truy cập vào API.

Lưu trữ các ứng dụng dựa trên trình duyệt trên máy chủ

Các khung, chẳng hạn như Apache Cordova, cho phép bạn tạo ứng dụng kết hợp đa nền tảng một cách thuận tiện chạy bên trong một khung hiển thị web. Tuy nhiên, các hạn chế về trang web của khoá API không được đảm bảo sẽ hoạt động chính xác, trừ phi ứng dụng web của bạn được tải bằng HTTP hoặc HTTPS từ một trang web mà bạn kiểm soát và đã uỷ quyền.

Trong nhiều trường hợp, tài nguyên được đóng gói, tải cục bộ từ trong một ứng dụng kết hợp hoặc truy cập bằng URL tệp cục bộ sẽ ngăn hoạt động uỷ quyền dựa trên liên kết hoạt động vì công cụ trình duyệt cung cấp năng lượng cho thành phần hiển thị web của bạn sẽ bỏ qua việc gửi tiêu đề Referer. Để tránh điều này, hãy lưu trữ ứng dụng web của bạn ở phía máy chủ, chứ không phải ở phía máy khách.

Ngoài ra, đối với ứng dụng di động, hãy cân nhắc sử dụng các SDK gốc có sẵn của Nền tảng Google Maps dành cho Android và iOS, thay vì sử dụng SDK dựa trên web.

Sử dụng tính năng Kiểm tra ứng dụng để bảo mật khoá API

Một số SDK và API của Maps cho phép bạn tích hợp với tính năng Kiểm tra ứng dụng Firebase. Tính năng Kiểm tra ứng dụng bảo vệ các lệnh gọi từ ứng dụng của bạn đến Nền tảng Google Maps bằng cách chặn lưu lượng truy cập đến từ các nguồn không phải là ứng dụng hợp pháp. Bằng cách kiểm tra mã thông báo từ nhà cung cấp chứng thực. Việc tích hợp ứng dụng với tính năng Kiểm tra ứng dụng giúp bảo vệ khỏi các yêu cầu độc hại, nhờ đó, bạn sẽ không bị tính phí cho các lệnh gọi API trái phép.

Hướng dẫn tích hợp tính năng Kiểm tra ứng dụng:

Xử lý việc sử dụng trái phép khoá API

Nếu bạn phát hiện thấy việc sử dụng khoá API của mình là trái phép, hãy làm như sau để giải quyết vấn đề:

  1. Hạn chế khoá: Nếu bạn đã sử dụng cùng một khoá trong nhiều ứng dụng, hãy di chuyển sang nhiều khoá API và sử dụng các khoá API riêng biệt cho từng ứng dụng. Để biết thêm thông tin chi tiết, hãy xem:

  2. Nếu sử dụng SDK Địa điểm hoặc API JavaScript của Maps, bạn cũng có thể sử dụng tính năng Kiểm tra ứng dụng để bảo mật Khoá API.

  3. Chỉ thay thế hoặc xoay khoá nếu các điều kiện sau đây đều đúng:

    • Bạn phát hiện thấy hoạt động sử dụng trái phép trên các khoá không thể bị hạn chế hoặc đã bị hạn chế và không áp dụng được tính năng Kiểm tra ứng dụng.

    • Bạn muốn hành động nhanh hơn để bảo mật khoá API và ngăn chặn hành vi sử dụng sai trái, ngay cả khi việc này có thể ảnh hưởng đến lưu lượng truy cập hợp pháp từ ứng dụng của bạn.

    Trước khi tiến hành, hãy đọc kỹ phần Thận trọng khi xoay khoá API.

  4. Nếu bạn vẫn gặp vấn đề hoặc cần trợ giúp, hãy liên hệ với bộ phận hỗ trợ.

Các hạn chế được đề xuất đối với ứng dụng và API

Các phần sau đây đề xuất các hạn chế thích hợp về ứng dụng và API cho từng API, SDK hoặc dịch vụ của Google Maps Platform.

Các quy tắc hạn chế API được đề xuất

Các nguyên tắc sau đây về các quy định hạn chế đối với API áp dụng cho tất cả các dịch vụ của Google Maps Platform:

  • Hạn chế khoá API của bạn chỉ cho các API mà bạn đang sử dụng, ngoại trừ các trường hợp ngoại lệ sau:

    • Nếu ứng dụng của bạn sử dụng SDK Địa điểm cho Android hoặc SDK Địa điểm cho iOS, hãy cho phép API Địa điểm (Mới) hoặc API Địa điểm, tuỳ thuộc vào phiên bản SDK mà bạn sử dụng. 1

    • Nếu ứng dụng của bạn sử dụng API JavaScript của Maps, hãy luôn uỷ quyền cho ứng dụng đó trên khoá của bạn.

    • Nếu cũng sử dụng bất kỳ dịch vụ API JavaScript của Maps nào sau đây, bạn cũng nên cho phép các API tương ứng này:

      Dịch vụ Hạn chế API
      Dịch vụ chỉ đường (Cũ) Directions API (Cũ)
      Dịch vụ ma trận khoảng cách (Cũ) Distance Matrix API (Cũ)
      Dịch vụ độ cao Elevation API
      Dịch vụ mã hoá địa lý Geocoding API
      Lớp địa điểm, Thanh công cụ tự động hoàn thành địa điểm (Mới) và API dữ liệu tự động hoàn thành địa điểm Places API (Mới)2
      Thư viện địa điểm, Dịch vụ địa điểm và Tiện ích tự động hoàn thành địa điểm Places API2

1 Để biết thêm thông tin chi tiết, hãy xem tài liệu về SDK Địa điểm dành cho AndroidSDK Địa điểm dành cho iOS.

2 Nếu bạn không chắc mình có cần uỷ quyền cho API Địa điểm (Mới) hay API Địa điểm hay không, hãy xem tài liệu về Maps JavaScript API.

Một số ví dụ:

  • Bạn đang sử dụng SDK Bản đồ dành cho Android và SDK Địa điểm dành cho Android, vì vậy, bạn sẽ thêm SDK Bản đồ dành cho Android và API Địa điểm (Mới) làm các hạn chế API.

  • Trang web của bạn sử dụng Dịch vụ độ cao API Maps JavaScript và API Maps Static, vì vậy, bạn thêm các quy tắc hạn chế API cho tất cả các API sau:

    • API JavaScript cho Maps
    • Elevation API
    • API tĩnh cho Maps

Hạn chế ứng dụng được đề xuất

Trang web

Đối với các trang web sử dụng dịch vụ API JavaScript của Maps, API Tĩnh của Maps hoặc API Tĩnh của Chế độ xem đường phố hoặc gọi trực tiếp các dịch vụ gần đây của Nền tảng Google Maps qua API REST HTTPS hoặc gRPC, hãy sử dụng quy định hạn chế ứng dụng Trang web:

1 Đối với ứng dụng di động, hãy cân nhắc sử dụng SDK Bản đồ dành cho AndroidSDK Bản đồ dành cho iOS gốc.

2 Đối với ứng dụng di động, hãy cân nhắc sử dụng SDK Địa điểm dành cho AndroidSDK Địa điểm dành cho iOS gốc.

3 Xem thêm nội dung Bảo vệ việc sử dụng API web tĩnh.

Trang web có Maps Embed API

Mặc dù không phải trả phí khi sử dụng API Nhúng Maps, nhưng bạn vẫn nên hạn chế mọi khoá API đã sử dụng để ngăn chặn hành vi sử dụng sai mục đích trên các dịch vụ khác.

Phương pháp hay nhất: Tạo một khoá API riêng biệt để sử dụng Maps Embed API và chỉ cho phép khoá này duy nhất sử dụng Maps Embed API. Quy định hạn chế này bảo vệ đủ cẩn thận cho khoá, ngăn chặn việc sử dụng trái phép khoá trên bất kỳ dịch vụ nào khác của Google. Để có toàn quyền kiểm soát nơi có thể sử dụng khoá API Nhúng Maps, bạn cũng nên áp dụng các quy tắc hạn chế đối với ứng dụng Trang web.

Nếu bạn không thể tách riêng hoạt động sử dụng API Nhúng Maps sang một khoá API riêng biệt, hãy bảo mật khoá hiện có bằng cách sử dụng quy tắc hạn chế ứng dụng Trang web.

Ứng dụng và máy chủ sử dụng dịch vụ web

Đối với máy chủ và ứng dụng phía máy khách từ mạng nội bộ đáng tin cậy của công ty sử dụng dịch vụ web cùng với khoá API, hãy sử dụng quy tắc hạn chế ứng dụng IP addresses.

Sử dụng cho các ứng dụng và máy chủ bằng các API sau:

4 Đối với ứng dụng di động, hãy cân nhắc sử dụng Navigation SDK.

5 Để sử dụng an toàn trên thiết bị di động, hãy sử dụng máy chủ proxy bảo mật.

6 Đối với các ứng dụng phía máy khách, hãy cân nhắc sử dụng dịch vụ định vị địa lý gốc do nền tảng cung cấp; ví dụ: Định vị địa lý W3C cho trình duyệt web, LocationManager hoặc Fused Location Provider API cho Android hoặc khung Core Location của Apple cho iOS.

7 Đối với ứng dụng di động, hãy cân nhắc sử dụng SDK Địa điểm dành cho AndroidSDK Địa điểm dành cho iOS gốc.

8 Để sử dụng an toàn ở phía máy khách, hãy sử dụng máy chủ proxy bảo mật.

Ứng dụng Android

Đối với các ứng dụng trên Android, hãy sử dụng quy định hạn chế ứng dụng Android apps. Sử dụng cho các ứng dụng sử dụng các SDK sau:

Ngoài ra, hãy ngăn việc vô tình kiểm tra khoá API vào tính năng kiểm soát phiên bản bằng cách sử dụng Trình bổ trợ Gradle cho thông tin bí mật để chèn thông tin bí mật từ một tệp cục bộ thay vì lưu trữ thông tin đó trong Tệp kê khai Android.

Ứng dụng iOS

Đối với ứng dụng trên iOS, hãy sử dụng quy định hạn chế ứng dụng iOS apps. Sử dụng cho các ứng dụng và máy chủ sử dụng các SDK sau:

Tài liệu đọc thêm