แอปและโปรเจ็กต์ที่ใช้ Google Maps Platform APIs และ SDK ต้องใช้คีย์ API หรือ OAuth 2.0 (หากรองรับ) เพื่อตรวจสอบสิทธิ์ของตัวเอง
แนวทางปฏิบัติแนะนำเหล่านี้จะแสดงวิธีรักษาความปลอดภัยในการเข้าถึง Maps Platform
หากต้องการใช้ OAuth 2.0 เพื่อให้สิทธิ์การรับส่งข้อมูลจากเซิร์ฟเวอร์ถึงเซิร์ฟเวอร์ ให้ค้นหาหัวข้อ OAuth ในเอกสารประกอบ API ดูรายละเอียดเพิ่มเติมได้ที่ใช้ OAuth สำหรับแอปฝั่งเซิร์ฟเวอร์
นอกเหนือจากการใช้การจำกัดแอปพลิเคชันและคีย์ API แล้ว ให้ปฏิบัติตาม แนวทางปฏิบัติด้านความปลอดภัยที่ใช้กับผลิตภัณฑ์ Google Maps Platform ที่เฉพาะเจาะจง เช่น ดู Maps JavaScript API ด้านล่างในการจำกัดแอปพลิเคชันและ API ที่แนะนำ
หากมีการใช้คีย์ API อยู่แล้ว โปรดดูคำแนะนำด้านล่างในส่วนหากคุณ จำกัดคีย์ API ที่ใช้งานอยู่
ดูรายละเอียดเพิ่มเติมเกี่ยวกับลายเซ็นดิจิทัลที่ Maps Static API และ Street View Static API รองรับได้ที่คู่มือลายเซ็นดิจิทัล
แนวทางปฏิบัติแนะนำ
เพื่อเพิ่มความปลอดภัยและหลีกเลี่ยงการเรียกเก็บเงินสำหรับการใช้งานที่ไม่ได้รับอนุญาต โปรดปฏิบัติตาม แนวทางปฏิบัติแนะนำด้านความปลอดภัยของ API เหล่านี้สำหรับ Google Maps Platform API, SDK หรือ บริการทั้งหมด
แนะนำสำหรับการใช้คีย์ API ทั้งหมด
ใช้คีย์ API แยกต่างหากสำหรับแต่ละแอป
โปรดระมัดระวังเมื่อหมุนเวียนคีย์ API
แยกการใช้งานฝั่งไคลเอ็นต์และฝั่งเซิร์ฟเวอร์ออกเป็นโปรเจ็กต์แยกกัน
คำแนะนำเพิ่มเติมสำหรับแอปฝั่งไคลเอ็นต์
เรียกใช้บริการเว็บฝั่งไคลเอ็นต์อย่างปลอดภัย
คำแนะนำเพิ่มเติมสำหรับเว็บไซต์หรือแอปฝั่งไคลเอ็นต์ที่ใช้ Static Web API
ปกป้องการใช้งาน Static Web API
คำแนะนำเพิ่มเติมสำหรับแอปฝั่งเซิร์ฟเวอร์ที่ใช้บริการเว็บ
ใช้ OAuth สำหรับแอปฝั่งเซิร์ฟเวอร์
หากคุณจำกัดหรือหมุนเวียนคีย์ API ที่ใช้งานอยู่
ก่อนที่จะเปลี่ยนคีย์ API ให้ตรวจสอบการใช้งานคีย์ API ขั้นตอนนี้มีความสำคัญอย่างยิ่งหากคุณกำลังเพิ่มข้อจำกัดสำหรับคีย์ที่ใช้งานอยู่ในแอปพลิเคชันเวอร์ชันที่ใช้งานจริงอยู่แล้ว
หลังจากเปลี่ยนคีย์แล้ว ให้อัปเดตแอปทั้งหมดด้วยคีย์ API ใหม่ตามที่จำเป็น
หากคีย์ API ไม่ได้ถูกบุกรุกและไม่ได้ถูกละเมิดอย่างต่อเนื่อง คุณสามารถย้ายข้อมูลแอปไปยังคีย์ API ใหม่หลายรายการได้ตามต้องการ โดยไม่ต้อง แตะต้องคีย์ API เดิมจนกว่าจะเห็นการเข้าชมเพียงประเภทเดียว และจำกัดคีย์ API ได้อย่างปลอดภัยด้วยข้อจำกัดของแอปพลิเคชันประเภทเดียว โดยไม่ทำให้เกิดการหยุดชะงักของบริการโดยไม่ตั้งใจ
ดูวิธีการเพิ่มเติมได้ที่ย้ายข้อมูลไปยังคีย์ API หลายรายการ
ตรวจสอบการใช้งานเมื่อเวลาผ่านไป และดูว่าเมื่อใดที่ API, ประเภทแพลตฟอร์ม และโดเมนที่เฉพาะเจาะจงได้ย้ายข้อมูลออกจากคีย์ API เก่าแล้ว ก่อนที่จะเลือกจำกัดหรือลบคีย์เก่า ดูข้อมูลเพิ่มเติมได้ที่การรายงานและการตรวจสอบ และเมตริก
หากคีย์ API ถูกบุกรุก คุณจะต้องดำเนินการอย่างรวดเร็วเพื่อรักษาความปลอดภัยของคีย์ API และหยุดการละเมิด ในแอป Android และ iOS ระบบจะไม่ แทนที่คีย์จนกว่าลูกค้าจะอัปเดตแอป การอัปเดตหรือแทนที่คีย์ใน หน้าเว็บหรือในแอปฝั่งเซิร์ฟเวอร์นั้นตรงไปตรงมามากกว่า แต่ก็ ยังคงต้องมีการวางแผนอย่างรอบคอบและการทำงานที่รวดเร็ว
ดูข้อมูลเพิ่มเติมได้ที่จัดการการใช้คีย์ API โดยไม่ได้รับอนุญาต
ข้อมูลเพิ่มเติม
การจำกัดแอปพลิเคชันและ API ที่แนะนำ
จำกัดคีย์ API
แนวทางปฏิบัติแนะนำคือการจำกัดคีย์ API ด้วยการจำกัดแอปพลิเคชันประเภทเดียวและการจำกัด API อย่างน้อย 1 รายการเสมอ ดูการจำกัดที่แนะนำตาม API, SDK หรือบริการ JavaScript ได้ที่การจำกัดแอปพลิเคชันและ API ที่แนะนำด้านล่าง
การจำกัดแอปพลิเคชัน คุณสามารถจำกัดการใช้คีย์ API สำหรับแพลตฟอร์มที่เฉพาะเจาะจง ได้แก่ แอปพลิเคชัน Android หรือ iOS หรือเว็บไซต์ที่เฉพาะเจาะจงสำหรับแอปพลิเคชันฝั่งไคลเอ็นต์ หรือที่อยู่ IP หรือเครือข่ายย่อย CIDR ที่เฉพาะเจาะจงสำหรับแอปฝั่งเซิร์ฟเวอร์ที่ออกการเรียก REST API ของเว็บเซอร์วิส
คุณจำกัดคีย์ได้โดยการเพิ่มข้อจำกัดของแอปพลิเคชันอย่างน้อย 1 รายการของ ประเภทที่คุณต้องการให้สิทธิ์ หลังจากนั้นระบบจะอนุญาตเฉพาะคำขอที่มาจาก แหล่งที่มาเหล่านี้เท่านั้น
การจำกัด API คุณสามารถจำกัด Google Maps Platform API, SDK หรือบริการที่ใช้คีย์ API ได้ ข้อจำกัด API จะอนุญาตเฉพาะคำขอไปยัง API และ SDK ที่คุณระบุเท่านั้น คุณระบุข้อจำกัด API ได้มากเท่าที่ต้องการสำหรับคีย์ API ใดก็ตาม รายการ API ที่พร้อมใช้งาน ประกอบด้วย API ทั้งหมดที่เปิดใช้ในโปรเจ็กต์
ตั้งค่าข้อจำกัดของแอปพลิเคชันสำหรับคีย์ API
เปิดหน้าข้อมูลเข้าสู่ระบบ Google Maps Platform ใน Google Cloud Console
เลือกคีย์ API ที่ต้องการจำกัด
ในหน้าแก้ไขคีย์ API ให้เลือกตั้งค่าการจำกัดแอปพลิเคชันในส่วนการจำกัดคีย์
เลือกประเภทการจำกัดและระบุข้อมูลที่ขอ ตามรายการการจำกัด
ประเภทข้อจำกัด คำอธิบาย เว็บไซต์ ระบุเว็บไซต์อ้างอิงอย่างน้อย 1 เว็บไซต์ - รูปแบบ URI ของผู้แนะนำที่รองรับโดยทั่วไปคือ
https
และhttp
ระบบไม่รับประกันว่ารูปแบบอื่นๆ จะทำงานได้อย่างถูกต้อง เนื่องจากเว็บเบราว์เซอร์สมัยใหม่จะไม่ส่งส่วนหัว `Referer` ในคำขอขาออกด้วยเหตุผลด้านความเป็นส่วนตัว - ระบุสตริงผู้แนะนำทั้งหมดเสมอ
รวมถึงรูปแบบโปรโตคอล ชื่อโฮสต์ และพอร์ตที่ไม่บังคับ
(เช่น
https://google.com
) - คุณสามารถใช้อักขระไวลด์การ์ดเพื่อให้สิทธิ์โดเมนย่อยทั้งหมดได้ ตัวอย่างเช่น
https://*.google.com
ยอมรับเว็บไซต์ทั้งหมดที่ลงท้ายด้วย.google.com
- โปรดระมัดระวังเมื่อให้สิทธิ์ผู้แนะนำแบบเต็มเส้นทาง เช่น
https://google.com/some/path
เนื่องจากเว็บเบราว์เซอร์ส่วนใหญ่ จะตัดเส้นทางออกจากคำขอข้ามต้นทาง เพื่อเหตุผลด้านความเป็นส่วนตัว
ที่อยู่ IP ระบุที่อยู่ IPv4 หรือ IPv6 อย่างน้อย 1 รายการ หรือเครือข่ายย่อยโดยใช้รูปแบบ CIDR ที่อยู่ IP ต้องตรงกับที่อยู่ต้นทางที่เซิร์ฟเวอร์ Google Maps Platform สังเกตเห็น หากคุณใช้การแปลที่อยู่เครือข่าย (NAT) โดยปกติแล้วที่อยู่นี้จะตรงกับที่อยู่ IP สาธารณะ ของเครื่อง แอป Android เพิ่มชื่อแพ็กเกจ Android (จากไฟล์
AndroidManifest.xml
) และลายนิ้วมือใบรับรองการลงนาม SHA-1 ของแอปพลิเคชัน Android แต่ละรายการที่คุณต้องการ ให้สิทธิ์- เลือกแอป Android
- คลิก + เพิ่ม
- ป้อนชื่อแพ็กเกจและลายนิ้วมือใบรับรอง SHA-1 เช่น
com.example.android.mapexample
BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75
- คลิกบันทึก
ใบรับรองมี 2 ประเภท ได้แก่
- ใบรับรองการแก้ไขข้อบกพร่อง: ใช้ใบรับรองประเภทนี้กับแอปที่คุณกำลังทดสอบและโค้ดอื่นๆ ที่ไม่ใช่เวอร์ชันที่ใช้งานจริงเท่านั้น อย่าพยายามเผยแพร่แอปที่ลงนามด้วยใบรับรองการแก้ไขข้อบกพร่อง เครื่องมือ Android SDK จะสร้างใบรับรองนี้โดยอัตโนมัติเมื่อคุณเรียกใช้บิลด์การแก้ไขข้อบกพร่อง
- ใบรับรองการเผยแพร่: ใช้ใบรับรองนี้เมื่อคุณพร้อมที่จะเผยแพร่แอปไปยัง App Store เครื่องมือ Android SDK จะสร้างใบรับรองนี้เมื่อคุณเรียกใช้บิลด์ที่เผยแพร่
ดูข้อมูลเพิ่มเติมเกี่ยวกับการรับรองแอปพลิเคชัน Android และใบรับรองได้ที่คู่มือการรับรองแอป
หากใช้ Play App Signing ให้ไปที่การทำงานร่วมกับผู้ให้บริการ API เพื่อดึงข้อมูล ลายนิ้วมือของใบรับรองการลงนาม หากคุณจัดการคีย์การลงนามด้วยตนเอง โปรดดู การลงนามในแอปพลิเคชันด้วยตนเอง หรือดูวิธีการสำหรับสภาพแวดล้อมการสร้าง
แอป iOS เพิ่มตัวระบุแพ็กเกจของแอปพลิเคชัน iOS แต่ละรายการที่คุณต้องการ ให้สิทธิ์
- เลือกแอป iOS
- คลิก + เพิ่ม
- เพิ่มรหัสชุดเพื่อยอมรับคำขอจากแอป iOS ที่มีรหัสดังกล่าว
- คลิกบันทึก
ดูคำแนะนำสำหรับการจำกัดแอปพลิเคชันได้ที่การจำกัดแอปพลิเคชัน ที่แนะนำ
- รูปแบบ URI ของผู้แนะนำที่รองรับโดยทั่วไปคือ
เลือกบันทึก
ตั้งค่าการจำกัด API สำหรับคีย์ API
เปิดหน้าข้อมูลเข้าสู่ระบบ Google Maps Platform ใน Google Cloud Console
เลือกคีย์ API ที่ต้องการจำกัด
ในหน้าแก้ไขคีย์ API ภายในการจำกัด API ให้ทำดังนี้
เลือกจำกัดคีย์
เปิดเลือก API แล้วเลือก API หรือ SDK ที่คุณต้องการให้แอปพลิเคชันเข้าถึงโดยใช้คีย์ API
หากไม่มี API หรือ SDK ในรายการ คุณต้องเปิดใช้ ดูรายละเอียดได้ที่วิธี เปิดใช้ API หรือ SDK อย่างน้อย 1 รายการ
เลือกบันทึก
ข้อจำกัดจะกลายเป็นส่วนหนึ่งของคำจำกัดความคีย์ API หลังจากขั้นตอนนี้ โปรดตรวจสอบว่าคุณได้ระบุรายละเอียดที่เหมาะสมและเลือกบันทึกเพื่อบันทึก การจำกัดคีย์ API ดูข้อมูลเพิ่มเติมได้ที่คู่มือรับคีย์ API ในเอกสารประกอบสำหรับ API หรือ SDK ที่คุณสนใจ
ดูการจำกัด API ที่แนะนำได้ที่การจำกัด API ที่แนะนำ
ตรวจสอบการใช้งานคีย์ API
หากคุณจำกัดคีย์ API หลังจากที่สร้างแล้ว หรือหากต้องการดูว่า API ใดที่คีย์ใช้เพื่อจำกัด API เหล่านั้น คุณจะต้องตรวจสอบการใช้งานคีย์ API ขั้นตอนเหล่านี้จะแสดงให้เห็นว่ามีการใช้คีย์ API ในบริการและวิธีการ API ใดบ้าง หากเห็นการใช้งานนอกเหนือจากบริการของ Google Maps Platform ให้ตรวจสอบเพื่อดูว่าคุณต้องเพิ่มข้อจำกัดเพิ่มเติมเพื่อหลีกเลี่ยง การใช้งานที่ไม่ต้องการหรือไม่ คุณสามารถใช้เครื่องมือสำรวจเมตริกของ Google Maps Platform Cloud Console เพื่อช่วยพิจารณาการจำกัด API และแอปพลิเคชันที่จะใช้กับ คีย์ API ได้โดยทำดังนี้
ระบุ API ที่ใช้คีย์ API
รายงานเมตริกต่อไปนี้ช่วยให้คุณระบุได้ว่า API ใดใช้คีย์ API ของคุณ ใช้รายงานเหล่านี้เพื่อทำสิ่งต่อไปนี้
- ดูวิธีใช้คีย์ API
- ตรวจหาการใช้งานที่ไม่คาดคิด
- ช่วยยืนยันว่าคีย์ที่ไม่ได้ใช้ปลอดภัยที่จะลบหรือไม่ ดูข้อมูลเกี่ยวกับการ ลบคีย์ API ได้ที่ลบคีย์ API ที่ไม่ได้ใช้
เมื่อใช้การจำกัด API ให้ใช้รายงานเหล่านี้เพื่อสร้างรายการ API ที่จะ ให้สิทธิ์ หรือเพื่อตรวจสอบคำแนะนำในการจำกัดคีย์ API ที่สร้างขึ้นโดยอัตโนมัติ ดูข้อมูลเพิ่มเติมเกี่ยวกับข้อจำกัดที่แนะนำได้ที่ใช้ข้อจำกัดที่แนะนำ ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้ เครื่องมือสำรวจเมตริกได้ที่สร้างแผนภูมิด้วยเครื่องมือสำรวจ เมตริก
ไปที่เครื่องมือสำรวจ เมตริกของ Google Cloud Console
ลงชื่อเข้าใช้และเลือกโปรเจ็กต์สำหรับคีย์ API ที่ต้องการตรวจสอบ
ไปที่หน้าโปรแกรมสำรวจเมตริกสำหรับ API ประเภทของคุณ
สำหรับคีย์ API ที่ใช้ API ใดก็ตามยกเว้น Maps Embed API ให้ไปที่หน้าโปรแกรมสำรวจ เมตริก
สำหรับคีย์ API ที่ใช้ Maps Embed API ให้ไปที่Metrics Explorer
ตรวจสอบคีย์ API แต่ละรายการ
เลือกเพิ่มตัวกรอง
เลือกป้ายกำกับ
credential_id
เลือกค่าที่สอดคล้องกับคีย์ที่ต้องการตรวจสอบ
โปรดทราบว่ามีการใช้คีย์ API นี้กับ API ใดบ้าง และยืนยันว่าการใช้งานเป็นไปตามที่คาดไว้
เมื่อเสร็จแล้ว ให้เลือกนำตัวกรองออก
ที่ท้ายบรรทัดของตัวกรองที่ใช้งานอยู่ เพื่อลบตัวกรองเพิ่มเติม
ทำซ้ำสำหรับคีย์ที่เหลือ
จำกัดคีย์ API ให้ใช้เฉพาะ API ที่กำลังใช้งานอยู่
หากพบการใช้งานที่ไม่ได้รับอนุญาต โปรดดูจัดการการใช้งานคีย์ API ที่ไม่ได้รับอนุญาต
เลือกประเภทการจํากัดแอปพลิเคชันที่ถูกต้องโดยใช้เครื่องมือสํารวจเมตริก
หลังจากยืนยันและดำเนินการที่จำเป็นเพื่อให้แน่ใจว่าคีย์ API จะใช้เฉพาะกับบริการ Google Maps Platform ที่ใช้เท่านั้นแล้ว ให้ยืนยันด้วยว่าคีย์ API มีข้อจำกัดของแอปพลิเคชันที่ถูกต้อง
หากคีย์ API มีข้อจำกัดของคีย์ API ที่แนะนำ ให้ใช้ข้อจำกัดเหล่านั้น ดูข้อมูลเพิ่มเติมได้ที่ใช้ข้อจำกัดของคีย์ API ที่แนะนำ
หากคีย์ API ไม่มีคำแนะนำในการจำกัด ให้พิจารณาประเภทของ
การจำกัดแอปพลิเคชันที่จะใช้ตามที่รายงานplatform_type
โดยใช้
โปรแกรมสำรวจเมตริก
ไปที่เครื่องมือสำรวจ เมตริกของ Google Cloud Console
ลงชื่อเข้าใช้และเลือกโปรเจ็กต์สำหรับ API ที่ต้องการตรวจสอบ
ไปที่หน้าเครื่องมือสำรวจเมตริกนี้: เครื่องมือสำรวจ เมตริก
ตรวจสอบคีย์ API แต่ละรายการ
เลือกเพิ่มตัวกรอง
เลือกป้ายกำกับ
credential_id
เลือกค่าที่สอดคล้องกับคีย์ที่ต้องการตรวจสอบ
เมื่อเสร็จแล้ว ให้เลือกนำตัวกรองออก
ที่ท้ายบรรทัดของตัวกรองที่ใช้งานอยู่ เพื่อลบตัวกรองเพิ่มเติม
ทำซ้ำสำหรับคีย์ที่เหลือ
เมื่อทราบประเภทแพลตฟอร์มสำหรับคีย์ API แล้ว ให้ใช้การจำกัดแอปพลิเคชันสำหรับ
platform_type
ดังนี้PLATFORM_TYPE_JS
: ใช้ข้อจำกัดของเว็บไซต์กับคีย์PLATFORM_TYPE_ANDROID
: ใช้ข้อจำกัดของแอปพลิเคชัน Android กับคีย์PLATFORM_TYPE_IOS
: ใช้ข้อจำกัดของแอปพลิเคชัน iOS กับคีย์PLATFORM_TYPE_WEBSERVICE
: คุณอาจต้องอาศัยข้อจำกัดของที่อยู่ IP ในคีย์เพื่อจำกัดคีย์อย่างถูกต้องดูคำแนะนำสำหรับ Maps Static API และ Street View Static API ได้ที่ ปกป้องการใช้งาน Static Web API
ดูคำแนะนำสำหรับ Maps Embed API ได้ที่ เว็บไซต์ที่มี Maps Embed API
คีย์ API ของฉันใช้แพลตฟอร์มหลายประเภท การเข้าชมของคุณจะไม่ปลอดภัยอย่างเหมาะสมหากใช้คีย์ API เพียงคีย์เดียว คุณต้อง ย้ายข้อมูลไปยังคีย์ API หลายรายการ ดูข้อมูลเพิ่มเติมได้ที่ ย้ายข้อมูลไปยังคีย์ API หลายรายการ
ใช้คีย์ API แยกต่างหากสำหรับแต่ละแอป
แนวทางปฏิบัตินี้จะจำกัดขอบเขตของแต่ละคีย์ หากคีย์ API รายการใดรายการหนึ่งถูกบุกรุก คุณจะลบหรือหมุนเวียนคีย์ที่ได้รับผลกระทบได้โดยไม่ต้องอัปเดตคีย์ API อื่นๆ คุณสร้างคีย์ API ได้สูงสุด 300 คีย์ต่อโปรเจ็กต์ ดูข้อมูลเพิ่มเติมได้ที่ขีดจำกัดของคีย์ API
แม้ว่าคีย์ API 1 รายการต่อแอปพลิเคชัน 1 รายการจะเหมาะที่สุดเพื่อวัตถุประสงค์ด้านความปลอดภัย แต่คุณก็ใช้คีย์ที่จำกัดในแอปหลายแอปได้ตราบใดที่แอปเหล่านั้นใช้การจำกัดแอปพลิเคชันประเภทเดียวกัน
ใช้ข้อจำกัดของคีย์ API ที่แนะนำ
สำหรับเจ้าของ โปรแกรมแก้ไข และผู้ดูแลระบบคีย์ API บางคน คอนโซล Google Cloud จะแนะนำข้อจำกัดคีย์ API ที่เฉพาะเจาะจงสำหรับคีย์ API ที่ไม่มีข้อจำกัดตามการใช้งานและกิจกรรมใน Google Maps Platform
หากมี คำแนะนำจะปรากฏเป็นตัวเลือกที่กรอกไว้ล่วงหน้าในหน้าข้อมูลเข้าสู่ระบบของ Google Maps Platform
API และ SDK ของแพลตฟอร์ม Google Maps ที่คำแนะนำอัตโนมัติรองรับ
Maps JavaScript API ซึ่งรวมถึง Directions Service (เดิม), Distance Matrix Service (เดิม), Elevation Service, Geocoding Service คลาส Place, วิดเจ็ต Place Autocomplete (ใหม่), Place Autocomplete Data API, Places Library, Places Service, วิดเจ็ต Place Autocomplete และ Places UI Kit
Maps Static API และ Street View Static API
Maps Embed API
Maps SDK สำหรับ Android, Navigation SDK สำหรับ Android, Places SDK สำหรับ Android และ Places UI Kit ใน Android
Maps SDK สำหรับ iOS, Navigation SDK สำหรับ iOS, Places SDK สำหรับ iOS, Places Swift SDK สำหรับ iOS และ Places UI Kit ใน iOS
สาเหตุที่คุณอาจไม่เห็นคำแนะนำหรือเห็นคำแนะนำที่ไม่สมบูรณ์
เหตุผลที่อาจไม่เห็นคำแนะนำ
คุณใช้คีย์ API ในบริการอื่นที่ไม่ใช่ Google Maps Platform หรือบริการ Maps Platform ที่ ยังไม่รองรับ คำแนะนำอัตโนมัติ
หากเห็นการใช้งานในบริการอื่นๆ อย่าใช้คำแนะนำโดยไม่ทำสิ่งต่อไปนี้ก่อน
ตรวจสอบว่าการใช้งาน API ที่คุณเห็นในเครื่องมือสำรวจเมตริกของ Google Cloud Console ถูกต้อง
เพิ่มบริการที่ขาดหายไปลงในรายการ API ที่จะให้สิทธิ์ด้วยตนเอง
เพิ่มข้อจำกัดของแอปพลิเคชันที่ขาดหายไปสำหรับบริการที่เพิ่มลงในรายการ API ด้วยตนเอง หากโฆษณาอื่นๆ ที่คุณเพิ่มต้องใช้ข้อจำกัดของแอปพลิเคชันประเภทอื่น โปรดดูย้ายข้อมูลไปยังคีย์ API หลายรายการ
คีย์ API ของคุณไม่ได้ใช้ใน SDK หรือ API ฝั่งไคลเอ็นต์
คุณใช้คีย์ API ในแอปหรือเว็บไซต์ที่มีปริมาณการใช้งานต่ำซึ่งไม่มีการใช้งาน ในช่วง 60 วันที่ผ่านมา
คุณเพิ่งสร้างคีย์ใหม่ หรือเพิ่งติดตั้งใช้งาน คีย์ที่มีอยู่ในแอปใหม่ หากเป็นกรณีนี้ โปรดรออีก 2-3 วัน เพื่อให้คำแนะนำอัปเดต
คุณใช้คีย์ API ในแอปพลิเคชันหลายรายการซึ่งต้องมีการจำกัดแอปพลิเคชันประเภทที่ขัดแย้งกัน หรือคุณใช้คีย์ API เดียวกันในแอปหรือเว็บไซต์ที่แตกต่างกันมากเกินไป ไม่ว่าในกรณีใดก็ตาม แนวทางปฏิบัติแนะนำคือคุณควรย้ายข้อมูลไปยังคีย์หลายรายการ ดูรายละเอียดเพิ่มเติมได้ที่ ย้ายข้อมูลไปยังคีย์ API หลายรายการ
สาเหตุที่เห็นคำแนะนำที่ไม่สมบูรณ์
คุณใช้คีย์ API ในแอปหรือเว็บไซต์ที่มีปริมาณการใช้งานต่ำซึ่งไม่มีการใช้งาน ในช่วง 60 วันที่ผ่านมา
คุณเพิ่งเริ่มใช้คีย์ที่มีอยู่กับ API หรือบริการใหม่เมื่อเร็วๆ นี้ และไปป์ไลน์คำแนะนำการจำกัดคีย์ API อัตโนมัติยังไม่ได้ประมวลผลเมตริกการใช้งานที่อัปเดต การเผยแพร่เมตริกการใช้งานอาจใช้เวลา 2-3 วัน
หากเห็นการใช้งานในบริการอื่นๆ อย่าใช้คำแนะนำโดยไม่ทำสิ่งต่อไปนี้ก่อน
ตรวจสอบว่าการใช้งาน API ที่คุณเห็นในเครื่องมือสำรวจเมตริกของ Google Cloud Console ถูกต้อง
เพิ่มบริการที่ขาดหายไปลงในรายการ API ที่จะให้สิทธิ์ด้วยตนเอง
เพิ่มข้อจำกัดของแอปพลิเคชันที่ขาดหายไปสำหรับบริการที่เพิ่มลงในรายการ API ด้วยตนเอง หากโฆษณาอื่นๆ ที่คุณเพิ่มต้องใช้ข้อจำกัดของแอปพลิเคชันประเภทอื่น โปรดดูย้ายข้อมูลไปยังคีย์ API หลายรายการ
หากไม่จำเป็นต้องจำกัดคีย์อย่างเร่งด่วน เช่น เนื่องจาก การใช้งานที่ไม่ได้รับอนุญาต คุณอาจรอ 1-2 วันเพื่อให้ คำแนะนำอัปเดต
สาเหตุที่คุณอาจเห็นคำแนะนำที่ไม่แสดงในแผนภูมิ
แอปหรือเว็บไซต์ของคุณส่งการเข้าชมที่เพิ่มขึ้นอย่างรวดเร็วในระยะเวลาสั้นๆ เท่านั้น ในกรณีนี้ ให้ เปลี่ยนจากมุมมองแผนภูมิเพื่อแสดงตารางหรือทั้ง 2 อย่าง เนื่องจาก การใช้งานจะยังคงปรากฏในคำอธิบาย ดูข้อมูลเพิ่มเติมได้ที่การสลับ คำอธิบาย แผนภูมิทั้งหมด
การเข้าชมมาจาก Maps Embed API ดูวิธีการได้ที่ระบุ API ที่ใช้คีย์ API
การเข้าชมจากแอปหรือเว็บไซต์อยู่นอกช่วงวันที่ที่ใช้ได้ใน เครื่องมือสำรวจเมตริกของคอนโซล Google Cloud
วิธีใช้ข้อจำกัดที่แนะนำ
เปิดหน้าข้อมูลเข้าสู่ระบบ Google Maps Platform ใน Google Cloud Console
หากมี ให้เลือกใช้การจำกัดที่แนะนำ
เลือกตรวจสอบการใช้งาน API เพื่อยืนยันว่าคีย์ API ใช้กับบริการใด หากเห็นบริการอื่นๆ นอกเหนือจาก Google Maps Platform ให้หยุดชั่วคราว เพื่อตรวจสอบขั้นตอนการแนะนำข้างต้นด้วยตนเอง ดูขั้นตอนการแก้ปัญหาที่ ส่วนต้นของส่วน ใช้ข้อจำกัดของคีย์ API ที่แนะนำ
ตรวจสอบอีกครั้งว่าข้อจำกัดที่กรอกไว้ล่วงหน้าตรงกับเว็บไซต์และแอป ที่คุณคาดว่าจะใช้คีย์ API หรือไม่
แนวทางปฏิบัติแนะนำ: จัดทำเอกสารและนำข้อจำกัดของแอปพลิเคชันหรือ API ที่ไม่ได้เชื่อมโยงกับบริการของคุณออก หากมีสิ่งใดหยุดทำงานเนื่องจาก การอ้างอิงที่ไม่คาดคิด คุณสามารถเพิ่มแอปหรือ API ที่จำเป็นกลับเข้าไปได้
หากคุณทราบว่าแอป เว็บไซต์ หรือ API หายไปจากคำแนะนำ อย่างชัดเจน ให้เพิ่มด้วยตนเองหรือรอ 2-3 วันเพื่อให้ คำแนะนำอัปเดต
หากต้องการความช่วยเหลือเพิ่มเติมเกี่ยวกับคำแนะนำที่แนะนำ โปรดติดต่อ ทีมสนับสนุน
เลือกใช้
สิ่งที่ต้องทำหากใบสมัครถูกปฏิเสธหลังจากใช้คำแนะนำ
หากสังเกตเห็นว่าแอปหรือเว็บไซต์ถูกปฏิเสธหลังจากใช้ข้อจำกัด ให้มองหาข้อจำกัดของแอปพลิเคชันที่คุณต้องเพิ่มในข้อความแสดงข้อผิดพลาดในการตอบกลับของ API
SDK และ API ฝั่งไคลเอ็นต์
- แอปที่ใช้เบราว์เซอร์และ WebView
โดยปกติแล้ว เบราว์เซอร์สมัยใหม่จะปกปิดส่วนหัว
Referer
ในคำขอข้ามต้นทาง เนื่องจากเหตุผลด้านความเป็นส่วนตัว ซึ่งมักจะลดส่วนหัวดังกล่าวลงเหลือเพียงOrigin
อย่างไรก็ตาม ลักษณะการทำงานที่แน่นอนจะขึ้นอยู่กับreferrer-policy
ที่ใช้ของ เว็บไซต์โฮสติ้ง และอาจแตกต่างกันไปตามเบราว์เซอร์และเวอร์ชันของผู้ใช้ด้วยโดยทั่วไปแล้ว เว็บแอปพลิเคชันที่ใช้รูปแบบ URI ที่ไม่ชัดเจนหรือ URI ในเครื่องเพื่อโหลดเนื้อหาจะทำให้เบราว์เซอร์การแสดงผลหรือ WebView ปิดบังส่วนหัว
Referer
จากการเรียกขาออกทั้งหมด ซึ่งอาจทำให้คำขอที่ใช้คีย์ API ที่มีข้อจำกัดของเว็บไซต์ล้มเหลวดูคำแนะนำเพิ่มเติมได้ที่ โฮสต์แอปที่ใช้เบราว์เซอร์ในเซิร์ฟเวอร์
วิธีการแก้ปัญหาสำหรับแอปที่ใช้เบราว์เซอร์และ WebView
สำหรับ Maps JavaScript API โปรดดูรายละเอียดวิธีให้สิทธิ์แอปพลิเคชันในคอนโซลการแก้ไขข้อบกพร่องของเบราว์เซอร์
ระบบรองรับรูปแบบ URI ที่ไม่ค่อยได้ใช้บางส่วน หากบางส่วนของแอปพลิเคชันไม่ทำงานใน URI Scheme ที่ไม่ปกติ แม้หลังจากให้สิทธิ์ผู้แนะนำที่จำเป็นแล้ว คุณอาจต้องโฮสต์แอปพลิเคชันจากระยะไกลในเซิร์ฟเวอร์และโหลดผ่าน HTTPS (หรือ HTTP)
หากต้องการความช่วยเหลือเกี่ยวกับรูปแบบ URI ที่ซับซ้อน โปรดติดต่อทีมสนับสนุน
โดยทั่วไปแล้ว API อื่นๆ ของ Maps Platform จะแสดง ผู้แนะนำที่คุณต้องให้สิทธิ์ในการตอบกลับข้อผิดพลาดของ API โดยถือว่า ไคลเอ็นต์ส่งข้อมูลนี้พร้อมกับคำขอที่ถูกปฏิเสธ
ไม่รองรับรูปแบบ URI ที่ซับซ้อน
- แอป Android
ใช้ Android Debug Bridge (adb) หรือ Logcat
- แอป iOS
แอปที่เรียกใช้บริการเว็บโดยตรง
สําหรับแอปพลิเคชันที่เรียกใช้ HTTPS REST API ของ Maps Platform หรือ ปลายทาง gRPC โดยตรงโดยไม่มี Google Maps Platform SDK ฝั่งไคลเอ็นต์ โปรดดู ด้านล่าง
- แอป Android และ iOS
หากแอปพลิเคชัน Android หรือ iOS เรียกใช้บริการของ Maps Platform โดยตรงโดยไม่ใช้ Google Maps Platform Client SDK ที่พร้อมใช้งาน โปรดดูเคล็ดลับเพิ่มเติมในการแก้ปัญหาสำหรับแอป Android และแอป iOS รวมถึงการเรียกใช้เว็บเซอร์วิสฝั่งไคลเอ็นต์อย่างปลอดภัยเพื่อดูแนวทางปฏิบัติแนะนำด้านความปลอดภัยในปัจจุบันสำหรับกรณีการใช้งานบนอุปกรณ์เคลื่อนที่
หากแอปบันทึกการตอบกลับข้อผิดพลาดของ Maps Platform API วิธีการข้างต้นสำหรับ SDK ฝั่งไคลเอ็นต์อาจมีประโยชน์ในการ แก้ปัญหาการตรวจสอบสิทธิ์ด้วย
- แอปฝั่งเซิร์ฟเวอร์
แอปพลิเคชันฝั่งเซิร์ฟเวอร์ที่ใช้คีย์ API ควรได้รับการรักษาความปลอดภัยผ่านการจำกัดที่อยู่ IP หากคุณได้ใช้ข้อจำกัดที่อยู่ IP กับคีย์ และบันทึกบริการแสดงการตอบกลับข้อผิดพลาดของ Maps Platform API ให้ตรวจสอบบันทึกของระบบเพื่อดูข้อมูลเพิ่มเติม การตอบกลับข้อผิดพลาดจะมีที่อยู่ IP ของเซิร์ฟเวอร์ ที่คุณต้องให้สิทธิ์
- แอปที่อิงตามเบราว์เซอร์หรือ WebView
แม้ว่า Maps Static API, Street View Static API และ Google Maps Platform API ที่ใหม่กว่าจะรองรับข้อจำกัดของผู้อ้างอิงด้วย แต่โปรดทราบว่าเว็บเบราว์เซอร์หรือ WebView อาจจำกัดส่วนหัว
Referer
เป็นOrigin
สำหรับคำขอข้ามโดเมน และอาจไม่ส่งส่วนหัวดังกล่าวเลย เช่น สำหรับทรัพยากรที่เข้าถึงในเครื่อง หรือสำหรับทรัพยากรที่แสดงผ่านโปรโตคอลอื่นที่ไม่ใช่ HTTP หรือ HTTPSหากใช้ Maps JavaScript API ในแอปพลิเคชันไม่ได้ และข้อจํากัดของเว็บไซต์ใช้ไม่ได้ โปรดดูการเรียกใช้บริการเว็บฝั่งไคลเอ็นต์ที่ปลอดภัย เพื่อดูวิธีออกการเรียกใช้บริการเว็บของ Maps Platform อย่างปลอดภัยจากภายในแอปพลิเคชันฝั่งไคลเอ็นต์ที่ใช้เบราว์เซอร์
เคล็ดลับในการตรวจสอบข้อจำกัดของ API
หากต้องการตรวจสอบการจำกัด API ที่จำเป็น โปรดดูระบุ API ที่ใช้คีย์ API ของคุณ
หากไม่แน่ใจว่าจะใช้ข้อจำกัดใด ให้ทำดังนี้
- บันทึกข้อจำกัดปัจจุบันเพื่อใช้อ้างอิงในอนาคต
- นำออกชั่วคราวขณะที่คุณตรวจสอบปัญหา คุณตรวจสอบการใช้งานเมื่อเวลาผ่านไปได้โดยทำตามขั้นตอนในตรวจสอบการใช้งานคีย์ API
- และติดต่อทีมสนับสนุนหากจำเป็น
ลบคีย์ API ที่ไม่ได้ใช้
ก่อนที่จะลบคีย์ API โปรดตรวจสอบว่าไม่ได้ใช้คีย์ดังกล่าวในเวอร์ชันที่ใช้งานจริง หากไม่มีการเข้าชมที่สำเร็จ คุณก็ลบคีย์ได้อย่างปลอดภัย ดูข้อมูลเพิ่มเติมได้ที่ตรวจสอบการใช้คีย์ API
วิธีลบคีย์ API
เปิดหน้าข้อมูลเข้าสู่ระบบ Google Maps Platform ใน Google Cloud Console
เลือกคีย์ API ที่ต้องการลบ
เลือกปุ่มลบที่ด้านบนของหน้า
ในหน้าลบข้อมูลเข้าสู่ระบบ ให้เลือกลบ
การลบคีย์ API จะใช้เวลาสักครู่จึงจะมีผล หลังจากที่การเผยแพร่เสร็จสมบูรณ์ ระบบจะปฏิเสธการเข้าชมใดๆ ที่ใช้คีย์ API ที่ถูกลบ
โปรดระมัดระวังเมื่อหมุนเวียนคีย์ API
การหมุนเวียนคีย์ API จะสร้างคีย์ใหม่ที่มีข้อจำกัดทั้งหมดของคีย์เก่า ในช่วงเวลานี้ ระบบจะยอมรับทั้งคีย์เก่าและคีย์ใหม่ ซึ่งจะช่วยให้คุณมี โอกาสย้ายข้อมูลแอปไปใช้คีย์ใหม่
ก่อนหมุนเวียนคีย์ API
ก่อนอื่นให้ลองจำกัดคีย์ API ตามที่อธิบายไว้ในจำกัดคีย์ API
หากจำกัดคีย์ API ไม่ได้เนื่องจากประเภทการจำกัดแอปพลิเคชันขัดแย้งกัน ให้ย้ายข้อมูลไปยังคีย์ใหม่หลายรายการ (ที่ถูกจำกัด) ตามที่อธิบายไว้ในย้ายข้อมูลไปยังคีย์ API หลายรายการ การย้ายข้อมูล ช่วยให้คุณควบคุมไทม์ไลน์การย้ายข้อมูลและการเปิดตัวคีย์ API ใหม่ได้
หากทำตามคำแนะนำข้างต้นไม่ได้ และคุณต้องหมุนเวียนคีย์ API เพื่อป้องกันการใช้งานที่ไม่ได้รับอนุญาต ให้ทำตามขั้นตอนต่อไปนี้
เปิดหน้าข้อมูลเข้าสู่ระบบ Google Maps Platform ใน Google Cloud Console
เปิดคีย์ API ที่ต้องการหมุนเวียน
เลือกหมุนเวียนคีย์ที่ด้านบนของหน้า
เปลี่ยนชื่อคีย์ API (ไม่บังคับ)
เลือกสร้าง
อัปเดตแอปพลิเคชันให้ใช้คีย์ใหม่
หลังจากอัปเดตแอปพลิเคชันให้ใช้คีย์ใหม่แล้ว ให้ลบคีย์เก่าโดยคลิกปุ่มลบคีย์ก่อนหน้าในส่วนคีย์ก่อนหน้าของหน้าคีย์ API ใหม่
ย้ายข้อมูลไปยังคีย์ API หลายรายการ
หากต้องการย้ายข้อมูลจากการใช้คีย์ API เดียวสำหรับหลายแอปเป็นคีย์ API ที่ไม่ซ้ำกันรายการเดียว สำหรับแต่ละแอป ให้ทำดังนี้
ระบุแอปที่ต้องใช้คีย์ใหม่
- เว็บแอปอัปเดตได้ง่ายที่สุดเนื่องจากคุณควบคุมโค้ดทั้งหมด วางแผนที่จะอัปเดตคีย์ของแอปบนเว็บทั้งหมด
- แอปบนอุปกรณ์เคลื่อนที่นั้นยากกว่ามาก เนื่องจากลูกค้าต้องอัปเดตแอป ก่อนจึงจะใช้คีย์ใหม่ได้
สร้างและจำกัดคีย์ใหม่: เพิ่มทั้งการจำกัดแอปพลิเคชัน และการจำกัด API อย่างน้อย 1 รายการ ดูข้อมูลเพิ่มเติมได้ที่แนวทางปฏิบัติแนะนำ
เพิ่มคีย์ใหม่ลงในแอป: สำหรับแอปบนอุปกรณ์เคลื่อนที่ กระบวนการนี้อาจใช้เวลาหลายเดือนจนกว่าผู้ใช้ทั้งหมดจะอัปเดตเป็นแอปเวอร์ชันล่าสุดที่มีคีย์ API ใหม่
แยกการใช้งานฝั่งไคลเอ็นต์และฝั่งเซิร์ฟเวอร์ออกเป็นโปรเจ็กต์แยกกัน
หากคุณต้องการเรียกใช้บริการ Google Maps Platform ทั้งจากแอปพลิเคชันฝั่งเซิร์ฟเวอร์ และจากแอปพลิเคชันฝั่งไคลเอ็นต์โดยตรงซึ่งทำงานบนอุปกรณ์ของผู้ใช้ปลายทาง Google ขอแนะนำให้แบ่งการใช้งานระหว่าง 2 โปรเจ็กต์แยกกัน
วิธีนี้ช่วยให้คุณใช้ขีดจำกัดโควต้าต่อนาทีและต่อผู้ใช้ที่เหมาะสมกับ บริการส่วนใหญ่ของ Google Maps Platform ในโปรเจ็กต์ฝั่งไคลเอ็นต์ ซึ่งจะช่วย ให้มั่นใจว่าผู้ใช้ปลายทางทุกคนจะได้รับโควต้าโปรเจ็กต์โดยรวมอย่างเท่าเทียมกัน โดยไม่ส่งผลกระทบต่อกัน
อย่างไรก็ตาม เนื่องจากข้อจำกัดโควต้าต่อผู้ใช้ส่งผลต่อทั้งแอปพลิเคชันฝั่งไคลเอ็นต์และฝั่งเซิร์ฟเวอร์ หากคุณต้องการแบนด์วิดท์สูงสำหรับงานฝั่งเซิร์ฟเวอร์ด้วย ให้สร้างโปรเจ็กต์แยกต่างหากสำหรับกรณีการใช้งานนี้ โดยกำหนดค่าให้มีขีดจำกัดโควต้าต่อผู้ใช้ที่สูงขึ้น หรือไม่มีขีดจำกัดเลย
ปิดใช้บริการที่ไม่ได้ใช้
อย่าเปิดใช้บริการที่ไม่ได้ใช้ในโปรเจ็กต์ เนื่องจากวิธีนี้อาจ ถูกละเมิดได้ โดยเฉพาะหากคุณไม่ได้จำกัดคีย์ API สาธารณะทั้งหมด แนวทางปฏิบัติแนะนำคือเปิดใช้บริการในโปรเจ็กต์เมื่อแอปพลิเคชันของคุณต้องการเท่านั้น
การเพิ่มข้อจำกัด API ในคีย์จะป้องกันไม่ให้ใช้คีย์ดังกล่าวในบริการที่ยังไม่ได้รับอนุญาต แต่ข้อจำกัด API จะมีผลกับคีย์นั้นๆ เท่านั้น ปิดใช้บริการที่ระดับโปรเจ็กต์เพื่อป้องกันการใช้บริการที่ไม่ได้รับอนุญาตในคีย์ใดๆ ที่ลิงก์กับโปรเจ็กต์
ใช้ SDK ฝั่งไคลเอ็นต์
เมื่อใช้ SDK ของ Google Maps Platform ฝั่งไคลเอ็นต์ที่ให้ไว้ คุณจะสามารถใช้การจำกัดที่เหมาะสมกับคีย์ API เพื่อรักษาการใช้งานบริการให้ปลอดภัยได้เสมอ
การใช้ SDK ฝั่งไคลเอ็นต์ยังช่วยให้คุณใช้กลไกการรักษาความปลอดภัยขั้นสูงได้มากขึ้น เช่น Firebase App Check ในพื้นผิว API ของ Maps Platform ที่รองรับ ดูรายละเอียดเพิ่มเติมได้ที่ ใช้ App Check เพื่อรักษาคีย์ API ให้ปลอดภัย
หากไม่มี SDK ฝั่งไคลเอ็นต์สำหรับแพลตฟอร์มของคุณ โปรดดูรักษาความปลอดภัยให้การเรียกใช้บริการเว็บฝั่งไคลเอ็นต์
ดูความพร้อมใช้งานของ SDK ของ Google Maps Platform ฝั่งไคลเอ็นต์สำหรับแพลตฟอร์มต่างๆ ได้ที่การจำกัดแอปพลิเคชันและ API ที่แนะนำ
ปกป้องการใช้งาน Static Web API
Static Web API เช่น Maps Static API และ Street View Static API จะคล้ายกับการเรียก API ของบริการเว็บ
คุณเรียกใช้ทั้ง 2 อย่างโดยใช้ HTTPS REST API และโดยปกติแล้วคุณจะสร้าง URL คำขอ API บนเซิร์ฟเวอร์ อย่างไรก็ตาม Static Web API จะสร้างรูปภาพที่คุณฝังในโค้ด HTML ที่สร้างขึ้นได้แทนที่จะแสดงการตอบกลับ JSON ที่สำคัญกว่านั้นคือโดยทั่วไปแล้วไคลเอ็นต์ของผู้ใช้ปลายทาง ไม่ใช่เซิร์ฟเวอร์ เป็นผู้เรียกใช้บริการ Google Maps Platform
ใช้ลายเซ็นดิจิทัล
แนวทางปฏิบัติแนะนำคือให้ใช้ลายเซ็นดิจิทัลควบคู่ไปกับคีย์ API เสมอ นอกจากนี้ ให้ตรวจสอบจำนวนคำขอที่ไม่ได้ลงนามที่คุณต้องการอนุญาตต่อวันและปรับ โควต้าคำขอที่ไม่ได้ลงนามตามนั้น
ดูรายละเอียดเพิ่มเติมเกี่ยวกับลายเซ็นดิจิทัลได้ในคำแนะนำเกี่ยวกับลายเซ็นดิจิทัล
ปกป้องความลับในการลงนาม
เพื่อปกป้อง Static Web API อย่าฝังข้อมูลลับในการลงนาม API โดยตรงในโค้ดหรือในโครงสร้างแหล่งที่มา หรือเปิดเผยข้อมูลลับในแอปพลิเคชันฝั่งไคลเอ็นต์ ทำตามแนวทางปฏิบัติแนะนำต่อไปนี้เพื่อปกป้องข้อมูลลับในการลงนาม
สร้าง URL คำขอ Maps Static API และ Street View Static API ที่ลงชื่อแล้วฝั่งเซิร์ฟเวอร์เมื่อแสดงหน้าเว็บ หรือในการตอบสนองต่อคำขอจากแอปพลิเคชันบนอุปกรณ์เคลื่อนที่
สำหรับเนื้อหาเว็บแบบคงที่ คุณสามารถใช้วิดเจ็ตลงนามใน URL ตอนนี้ ในหน้าข้อมูลเข้าสู่ระบบของ Google Maps Platform ใน Cloud Console
สำหรับเนื้อหาเว็บแบบไดนามิก โปรดดูตัวอย่างโค้ดการลงนามคำขอ URL ที่พร้อมใช้งาน
จัดเก็บข้อมูลลับในการลงนามนอกซอร์สโค้ดและซอร์ส ทรีของแอปพลิเคชัน หากคุณใส่ข้อมูลลับในการลงนามหรือข้อมูลส่วนตัวอื่นๆ ใน ตัวแปรสภาพแวดล้อม หรือรวมไฟล์ที่จัดเก็บแยกกัน แล้ว แชร์โค้ด ระบบจะไม่รวมข้อมูลลับในการลงนามไว้ในไฟล์ที่แชร์ หากจัดเก็บข้อมูลลับในการลงนามหรือข้อมูลส่วนตัวอื่นๆ ไว้ในไฟล์ ให้เก็บไฟล์ไว้นอกโครงสร้างแหล่งที่มาของแอปพลิเคชันเพื่อไม่ให้ข้อมูลลับในการลงนามอยู่ในระบบควบคุมซอร์สโค้ด ข้อควรระวังนี้มีความสำคัญอย่างยิ่ง หากคุณใช้ระบบการจัดการซอร์สโค้ดสาธารณะ เช่น GitHub
ปกป้องคีย์ API ของบริการเว็บ
หากต้องการใช้ Google Maps Platform API และบริการจากแอปฝั่งไคลเอ็นต์อย่างปลอดภัย โปรดดูใช้ SDK ฝั่งไคลเอ็นต์และการเรียกใช้เว็บเซอร์วิสฝั่งไคลเอ็นต์อย่างปลอดภัย
จัดเก็บคีย์ API นอกซอร์สโค้ดหรือซอร์สทรีของแอปพลิเคชัน หากคุณใส่คีย์ API หรือข้อมูลอื่นๆ ในตัวแปรสภาพแวดล้อมหรือ รวมไฟล์ที่จัดเก็บแยกกันแล้วแชร์โค้ด ระบบจะไม่รวมคีย์ API ไว้ในไฟล์ที่แชร์ ซึ่งมีความสำคัญอย่างยิ่งหากคุณ ใช้ระบบการจัดการซอร์สโค้ดแบบสาธารณะ เช่น GitHub
Google ขอแนะนำให้ใช้การจำกัด API กับคีย์ที่ใช้สำหรับ Maps Platform เพื่อช่วยป้องกันคีย์ API ของบริการเว็บจากการใช้งานโดยไม่ตั้งใจ นอกจากนี้ การใช้การจำกัดที่อยู่ IP กับคีย์บริการเว็บจะช่วยปกป้องคีย์จากการใช้งานที่ไม่ได้รับอนุญาตจากที่อยู่ IP อื่นๆ แม้ว่าคีย์จะรั่วไหลโดยไม่ตั้งใจก็ตาม
ใช้ OAuth สำหรับแอปฝั่งเซิร์ฟเวอร์
OAuth 2.0 เป็นมาตรฐานแบบเปิดสำหรับการมอบสิทธิ์เข้าถึง
แม้ว่าโปรโตคอล OAuth 2.0 จะรองรับกรณีการใช้งานที่ผู้ใช้ปลายทางให้สิทธิ์แอปพลิเคชันเข้าถึงข้อมูลส่วนตัวในนามของตน แต่กรณีการใช้งานที่ตั้งใจไว้สำหรับ OAuth 2.0 กับ Maps Platform คือให้นักพัฒนาซอฟต์แวร์ใช้โทเค็นการเข้าถึงชั่วคราวเพื่อให้สิทธิ์แอปพลิเคชันของตนในการเรียก API ในนามของบัญชีบริการของโปรเจ็กต์ Google Cloud ที่มีสิทธิ์ของบัญชีบริการ
เนื่องจากบัญชีบริการอาจมีสิทธิ์ที่กว้างมาก เราจึงขอแนะนำให้ใช้ OAuth 2.0 เพื่อให้สิทธิ์การเรียก server-to-server ระหว่างแอปพลิเคชันฝั่งเซิร์ฟเวอร์ที่เชื่อถือได้ของนักพัฒนาแอปกับเซิร์ฟเวอร์ Maps Platform ของ Google
สำหรับแอปพลิเคชันฝั่งไคลเอ็นต์ที่ทำงานในอุปกรณ์ของผู้ใช้ปลายทาง เราขอแนะนำให้ใช้วิธีการตรวจสอบสิทธิ์อื่นๆ เช่น คีย์ API
หากต้องการใช้ OAuth 2.0 เพื่อให้สิทธิ์การรับส่งข้อมูลจากเซิร์ฟเวอร์ถึงเซิร์ฟเวอร์ ให้ค้นหาหัวข้อ OAuth ในเอกสารประกอบ API
เช่น นี่คือหัวข้อ OAuth สำหรับ Address Validation API
เรียกใช้บริการเว็บฝั่งไคลเอ็นต์อย่างปลอดภัย
หาก SDK ฝั่งไคลเอ็นต์ไม่พร้อมใช้งาน ให้ดูคําแนะนําด้านล่าง
ใช้พร็อกซีเซิร์ฟเวอร์
การใช้เซิร์ฟเวอร์พร็อกซีที่ปลอดภัยเป็นแหล่งที่มาที่เชื่อถือได้สำหรับการโต้ตอบกับ ปลายทางบริการเว็บของ Google Maps Platform จากแอปพลิเคชันฝั่งไคลเอ็นต์ โดยไม่ต้องเปิดเผยคีย์ API, ข้อมูลลับในการลงนาม หรือบัญชีบริการ Google Cloud ต่อผู้ใช้ที่ไม่ได้รับอนุญาต
ประเด็นสำคัญ
สร้างคำขอ Google Maps Platform ในพร็อกซีเซิร์ฟเวอร์ อย่าอนุญาตให้ไคลเอ็นต์ส่งต่อการเรียก API ที่กำหนดเองโดยใช้พร็อกซี
ประมวลผลคำตอบของ Google Maps Platform ในเซิร์ฟเวอร์พร็อกซี กรองข้อมูลที่ไคลเอ็นต์ไม่ต้องการออก
ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้พร็อกซีเซิร์ฟเวอร์ได้ที่ Living Vicariously: Using Proxy Servers with the Google Data API Client Libraries
เรียกใช้บริการเว็บสำหรับอุปกรณ์เคลื่อนที่โดยตรงอย่างปลอดภัย
หากตั้งค่าพร็อกซีเซิร์ฟเวอร์ที่ปลอดภัยสำหรับแอปฝั่งไคลเอ็นต์ไม่ได้ ให้รักษาความปลอดภัยของแอปพลิเคชันโดยทำตามขั้นตอนต่อไปนี้
ใช้ส่วนหัว HTTP ดังนี้
Android: ใช้ส่วนหัว HTTP ของ
X-Android-Package
และX-Android-Cert
iOS: ใช้ส่วนหัว HTTP ของ
X-Ios-Bundle-Identifier
เพิ่มข้อจํากัดของแอปพลิเคชันที่เกี่ยวข้องลงในคีย์ Android หรือ iOS
ก่อนที่จะพิจารณาออกการเรียกจากแอปพลิเคชันบนอุปกรณ์เคลื่อนที่ไปยัง เว็บเซอร์วิส REST API ของ Google Maps Platform โดยตรง ให้ตรวจสอบว่าคำขอที่มีตัวระบุแอปพลิเคชัน Android หรือ iOS ที่ไม่ถูกต้องถูกปฏิเสธ
หากอุปกรณ์ปลายทางที่ทดสอบไม่รองรับการจำกัดแอปพลิเคชัน Android และ iOS Google ขอแนะนำให้คุณใช้เซิร์ฟเวอร์พร็อกซีที่ปลอดภัยระหว่างไคลเอ็นต์บนอุปกรณ์เคลื่อนที่กับ ปลายทางของเว็บเซอร์วิส Google Maps Platform
เคล็ดลับสำหรับแอปพลิเคชัน Android
ก่อนที่จะผสานรวมแอปพลิเคชัน Android กับบริการของ Google Maps Platform ให้ตรวจสอบว่ารหัสแอปพลิเคชัน (หรือที่เรียกว่าชื่อแพ็กเกจ) ได้รับการจัดรูปแบบอย่างถูกต้อง โปรดดูรายละเอียดที่หัวข้อ กำหนดค่าโมดูลแอป ในเอกสารประกอบของ Android
หากต้องการส่ง
X-Android-Package
จากแอปพลิเคชันโดยตรง ให้ค้นหาโดยใช้โปรแกรมผ่านContext.getPackageName()
หากต้องการส่ง
X-Android-Cert
จากแอปพลิเคชันโดยตรง ให้คำนวณลายนิ้วมือ SHA-1 ที่จำเป็นของใบรับรอง การลงนามในแอปพลิเคชัน ซึ่งเข้าถึงได้ผ่านPackageInfo.signingInfo
หากคุณให้สิทธิ์แอปพลิเคชัน Android โดยใช้ Google Cloud Console โปรดทราบว่า UI คาดหวังให้ลายนิ้วมือ SHA-1 เป็นสตริงที่คั่นด้วยเครื่องหมายโคลอน เช่น
00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF:00:11:22:33
อย่างไรก็ตามgcloud
เครื่องมือและ API คีย์ API คาดหวังสตริง ฐานสิบหกที่ไม่มีตัวคั่น
เคล็ดลับสำหรับแอปพลิเคชัน iOS
ก่อนที่จะผสานรวมแอปพลิเคชัน iOS กับบริการของ Google Maps Platform ให้ตรวจสอบว่า Bundle ID ของคุณจัดรูปแบบถูกต้อง
โดยปกติแล้ว คุณควรส่ง Bundle ID ของBundle หลักใน
X-Ios-Bundle-Identifier
ส่วนหัวเสมอเมื่อให้สิทธิ์แอปพลิเคชัน iOS
ดูข้อมูลเพิ่มเติมได้ที่บทความ จัดการคีย์ API และ ใช้คีย์ API เพื่อเข้าถึง API
โฮสต์แอปที่ใช้เบราว์เซอร์บนเซิร์ฟเวอร์
เฟรมเวิร์ก เช่น Apache Cordova ช่วยให้คุณสร้าง แอปแบบไฮบริดข้ามแพลตฟอร์มที่ทำงานภายใน WebView ได้อย่างสะดวก อย่างไรก็ตาม เราไม่รับประกันว่าการจำกัดเว็บไซต์สำหรับคีย์ API จะทำงานได้อย่างถูกต้อง เว้นแต่จะโหลดเว็บแอปโดยใช้ HTTP หรือ HTTPS จากเว็บไซต์ที่คุณควบคุมและได้รับอนุญาต
ในหลายกรณี ทรัพยากรที่รวมไว้ซึ่งโหลดในเครื่องจากภายในแอปพลิเคชันแบบไฮบริด หรือเข้าถึงโดยใช้ URL ของไฟล์ในเครื่องจะทำให้การให้สิทธิ์ตามผู้แนะนำใช้งานไม่ได้ เนื่องจากเครื่องมือเบราว์เซอร์ที่ขับเคลื่อน WebView จะไม่ส่งส่วนหัว Referer
หากต้องการหลีกเลี่ยงปัญหานี้ ให้โฮสต์เว็บแอปพลิเคชันฝั่งเซิร์ฟเวอร์ ไม่ใช่ฝั่งไคลเอ็นต์
หรือสำหรับแอปพลิเคชันบนอุปกรณ์เคลื่อนที่ ให้ลองใช้ SDK ของ Google Maps Platform สำหรับ Android และ iOS ที่มีอยู่แทนการใช้ SDK บนเว็บ
ใช้ App Check เพื่อรักษาคีย์ API ให้ปลอดภัย
SDK และ API ของ Maps บางรายการช่วยให้คุณผสานรวมกับ Firebase App Check ได้ App Check ช่วย ปกป้องการเรียกจากแอปของคุณไปยัง Google Maps Platform โดยการบล็อกการเข้าชม ที่มาจากแหล่งที่มาอื่นที่ไม่ใช่แอปที่ถูกต้องตามกฎหมาย โดยจะตรวจสอบโทเค็นจากผู้ให้บริการรับรอง การผสานรวมแอปกับ App Check จะช่วย ป้องกันคำขอที่เป็นอันตราย คุณจึงไม่ต้องเสียค่าใช้จ่ายสำหรับการเรียก API ที่ไม่ได้รับอนุญาต
วิธีการผสานรวม App Check
จัดการการใช้คีย์ API โดยไม่ได้รับอนุญาต
หากตรวจพบการใช้คีย์ API ของคุณโดยไม่ได้รับอนุญาต ให้ทำดังนี้เพื่อ แก้ไขปัญหา
จำกัดคีย์: หากคุณใช้คีย์เดียวกันในแอปหลายแอป ให้ ย้ายข้อมูลไปยังคีย์ API หลายรายการ และใช้คีย์ API แยกกันสำหรับแต่ละแอป ดูรายละเอียดเพิ่มเติมได้ที่
หากใช้ Places SDK หรือ Maps JavaScript API คุณก็ใช้การตรวจสอบแอปเพื่อรักษาความปลอดภัยของคีย์ API ได้เช่นกัน
ให้แทนที่หรือหมุนเวียนคีย์ในกรณีต่อไปนี้เท่านั้น
คุณตรวจพบการใช้งานที่ไม่ได้รับอนุญาตในคีย์ที่จำกัดไม่ได้ หรือจำกัดไว้แล้ว และ App Check ใช้ไม่ได้
คุณต้องการดำเนินการอย่างรวดเร็วเพื่อรักษาคีย์ API ให้ปลอดภัยและหยุดการละเมิด แม้ว่าอาจส่งผลต่อการเข้าชมที่ถูกต้องจากแอปพลิเคชันของคุณก็ตาม
ก่อนดำเนินการต่อ โปรดอ่าน โปรดระมัดระวังเมื่อหมุนเวียนคีย์ API
หากยังคงพบปัญหาหรือต้องการความช่วยเหลือ โปรดติดต่อทีมสนับสนุน
การจำกัดแอปพลิเคชันและ API ที่แนะนำ
ส่วนต่อไปนี้จะแนะนำการจำกัดแอปพลิเคชันและ API ที่เหมาะสมสำหรับ API, SDK หรือบริการแต่ละรายการของ Google Maps Platform
ข้อจำกัด API ที่แนะนำ
หลักเกณฑ์ต่อไปนี้สำหรับการจำกัด API มีผลกับบริการ Google Maps Platform ทั้งหมด
จำกัดคีย์ API ให้ใช้กับ API ที่คุณใช้เท่านั้น โดยมีข้อยกเว้นต่อไปนี้
หากแอปใช้ Places SDK สำหรับ Android หรือ Places SDK สำหรับ iOS ให้ให้สิทธิ์ Places API (ใหม่) หรือ Places API โดยขึ้นอยู่กับเวอร์ชัน SDK ที่คุณใช้ 1
หากแอปใช้ Maps JavaScript API ให้อนุมัติในคีย์เสมอ
หากคุณใช้บริการ Maps JavaScript API ต่อไปนี้ด้วย คุณควรให้สิทธิ์ API ที่เกี่ยวข้องเหล่านี้ด้วย
บริการ การจำกัด API บริการเส้นทาง (เดิม) Directions API (เดิม) บริการเมทริกซ์ระยะทาง (เดิม) Distance Matrix API (เดิม) บริการระดับความสูง Elevation API บริการการเข้ารหัสพิกัดภูมิศาสตร์ Geocoding API คลาส Place, วิดเจ็ต Place Autocomplete (ใหม่) & Place Autocomplete Data API Places API (ใหม่)2 Places Library, Places Service & Place Autocomplete Widget Places API2
1 ดูรายละเอียดเพิ่มเติมได้ที่เอกสารประกอบของ Places SDK สำหรับ Android และ Places SDK สำหรับ iOS
2 หากไม่แน่ใจว่าต้องให้สิทธิ์ Places API (ใหม่) หรือ Places API หรือไม่ โปรดดูเอกสารประกอบของ Maps JavaScript API
ตัวอย่างมีดังต่อไปนี้
คุณใช้ Maps SDK สำหรับ Android และ Places SDK สำหรับ Android ดังนั้นคุณจึงรวม Maps SDK สำหรับ Android และ Places API (ใหม่) เป็นข้อจำกัดของ API
เว็บไซต์ของคุณใช้ Maps JavaScript API Elevation Service และ Maps Static API ดังนั้นคุณจึงเพิ่มข้อจำกัด API สำหรับ API ทั้งหมดต่อไปนี้
- Maps JavaScript API
- Elevation API
- Maps Static API
ข้อจำกัดของแอปพลิเคชันที่แนะนำ
เว็บไซต์
สำหรับเว็บไซต์ที่ใช้บริการ Maps JavaScript API, Maps Static API หรือ Street View Static API หรือเรียกใช้บริการล่าสุดของแพลตฟอร์ม Google Maps โดยตรงผ่าน HTTPS REST API หรือ gRPC ให้ใช้การจำกัดแอปพลิเคชันเว็บไซต์
1 สำหรับแอปพลิเคชันบนอุปกรณ์เคลื่อนที่ ให้พิจารณา ใช้ Maps SDK สำหรับ Android และ Maps SDK สำหรับ iOS แบบเนทีฟ
2 สำหรับแอปพลิเคชันบนอุปกรณ์เคลื่อนที่ ให้พิจารณาใช้ Places SDK สำหรับ Android และ Places SDK สำหรับ iOS แบบเนทีฟ
3 ดูเพิ่มเติม ปกป้องการใช้งาน Static Web API
เว็บไซต์ที่มี Maps Embed API
แม้ว่าการใช้ Maps Embed API จะไม่มีค่าใช้จ่าย แต่คุณก็ควรจำกัดคีย์ API ที่ใช้เพื่อป้องกันการละเมิดในบริการอื่นๆ
แนวทางปฏิบัติแนะนำ: สร้างคีย์ API แยกต่างหากสำหรับใช้กับ Maps Embed API และจำกัดคีย์นี้ให้ใช้กับ Maps Embed API เท่านั้น ข้อจำกัดนี้จะรักษาความปลอดภัยของคีย์ได้อย่างเพียงพอ ซึ่งจะป้องกันไม่ให้มีการใช้คีย์โดยไม่ได้รับอนุญาตในบริการอื่นๆ ของ Google หากต้องการควบคุมอย่างเต็มที่ว่าจะใช้คีย์ Maps Embed API ได้จากที่ใด Google ขอแนะนำให้ใช้ข้อจำกัดของแอปพลิเคชันเว็บไซต์ด้วย
หากแยกการใช้งาน Maps Embed API ไปยังคีย์ API อื่นไม่ได้ ให้รักษาความปลอดภัยคีย์ที่มีอยู่โดยใช้ข้อจำกัดของแอปพลิเคชัน Websites
แอปและเซิร์ฟเวอร์ที่ใช้บริการเว็บ
สำหรับเซิร์ฟเวอร์และแอปฝั่งไคลเอ็นต์จากเครือข่ายภายในขององค์กรที่เชื่อถือได้ซึ่งใช้
บริการเว็บร่วมกับคีย์ API ให้ใช้การจำกัดIP addresses
แอปพลิเคชัน
ใช้สำหรับแอปและเซิร์ฟเวอร์ที่ใช้ API เหล่านี้
4 สำหรับแอปพลิเคชันบนอุปกรณ์เคลื่อนที่ ให้พิจารณาใช้ Navigation SDK
5 ใช้พร็อกซีเซิร์ฟเวอร์ที่ปลอดภัยเพื่อการใช้งานอุปกรณ์เคลื่อนที่อย่างปลอดภัย
6 สำหรับแอปพลิเคชันฝั่งไคลเอ็นต์ ให้พิจารณา ใช้บริการระบุตำแหน่งทางภูมิศาสตร์เนทีฟที่แพลตฟอร์มมีให้ เช่น การระบุตำแหน่งทางภูมิศาสตร์ของ W3C สำหรับเว็บเบราว์เซอร์ LocationManager หรือ Fused Location Provider API สำหรับ Android หรือเฟรมเวิร์ก Core Location ของ Apple สำหรับ iOS
7 สำหรับแอปพลิเคชันบนอุปกรณ์เคลื่อนที่ ให้พิจารณาใช้ Places SDK สำหรับ Android และ Places SDK สำหรับ iOS
8 หากต้องการใช้งานฝั่งไคลเอ็นต์อย่างปลอดภัย ให้ใช้พร็อกซีเซิร์ฟเวอร์ที่ปลอดภัย
แอป Android
สำหรับแอปใน Android ให้ใช้Android apps
การจำกัดแอปพลิเคชัน ใช้สำหรับ
แอปที่ใช้ SDK ต่อไปนี้
นอกจากนี้ ให้ป้องกันการเช็คอินคีย์ API ในการควบคุมเวอร์ชันโดยไม่ได้ตั้งใจโดย ใช้ปลั๊กอิน Gradle ของ Secrets เพื่อแทรกข้อมูลลับ จากไฟล์ในเครื่องแทนการจัดเก็บไว้ใน Android Manifest
แอป iOS
สำหรับแอปใน iOS ให้ใช้ข้อจำกัดของแอปพลิเคชัน iOS apps
ใช้สำหรับแอปและ
เซิร์ฟเวอร์ที่ใช้ SDK เหล่านี้
อ่านเพิ่มเติม
- จัดการคีย์ API
- ใช้คีย์ API เพื่อเข้าถึง API
- เพิ่มประสิทธิภาพการใช้งาน Google Maps Platform ด้วยโควต้า (วิดีโอ)
- วิธีสร้างและจำกัดคีย์ API สำหรับ Google Maps Platform (วิดีโอ)
- การจำกัดคีย์ API
- การรักษาความปลอดภัยของคีย์ API เมื่อใช้ Static Maps API และ Street View API
- แนวทางปฏิบัติแนะนำ 15 ข้อสำหรับ Google Maps Platform