คำแนะนำด้านความปลอดภัยของ Google Maps Platform

แอปและโปรเจ็กต์ที่ใช้ API และ SDK ของ Google Maps Platform ต้องใช้คีย์ 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 เหล่านี้สำหรับ API, SDK หรือ บริการทั้งหมดของ Google Maps Platform

จำกัดคีย์ API

ใช้คีย์ API แยกต่างหากสำหรับแต่ละแอป

ลบคีย์ API ที่ไม่ได้ใช้

ตรวจสอบการใช้งานคีย์ API

โปรดระมัดระวังเมื่อหมุนเวียนคีย์ API

แยกการใช้งานฝั่งไคลเอ็นต์และฝั่งเซิร์ฟเวอร์ออกเป็นโปรเจ็กต์แยกกัน

ปิดใช้บริการที่ไม่ได้ใช้

คำแนะนำเพิ่มเติมสำหรับแอปฝั่งไคลเอ็นต์

ใช้ SDK ฝั่งไคลเอ็นต์

เรียกใช้บริการเว็บฝั่งไคลเอ็นต์อย่างปลอดภัย

คำแนะนำเพิ่มเติมสำหรับเว็บไซต์หรือแอปฝั่งไคลเอ็นต์ที่ใช้ Static Web API

ปกป้องการใช้งาน Static Web API

คำแนะนำเพิ่มเติมสำหรับแอปฝั่งเซิร์ฟเวอร์ที่ใช้บริการเว็บ

ปกป้องคีย์ 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 คุณสามารถจำกัด API, SDK หรือบริการของ Google Maps Platform ที่ใช้คีย์ API ได้ การจำกัด API จะอนุญาตเฉพาะคำขอไปยัง API และ SDK ที่คุณระบุเท่านั้น คุณระบุข้อจำกัด API ได้มากเท่าที่ต้องการสำหรับคีย์ API ใดก็ตาม รายการ API ที่พร้อมใช้งาน ประกอบด้วย API ทั้งหมดที่เปิดใช้ในโปรเจ็กต์

ตั้งค่าข้อจำกัดของแอปพลิเคชันสำหรับคีย์ API

  1. เปิดหน้าข้อมูลเข้าสู่ระบบของ Google Maps Platform ในคอนโซล Google Cloud

  2. เลือกคีย์ API ที่ต้องการจำกัด

  3. ในหน้าแก้ไขคีย์ API ภายในข้อจํากัดของคีย์ ให้เลือก ตั้งค่าข้อจํากัดของแอปพลิเคชัน

    แก้ไขหน้าคีย์ API

  4. เลือกประเภทการจำกัดประเภทใดประเภทหนึ่ง แล้วระบุข้อมูลที่ขอ ตามรายการการจำกัด

    ประเภทข้อจำกัด คำอธิบาย
    เว็บไซต์ ระบุเว็บไซต์อ้างอิงอย่างน้อย 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 แต่ละรายการที่คุณต้องการ ให้สิทธิ์

    1. เลือกแอป Android
    2. คลิก + เพิ่ม
    3. ป้อนชื่อแพ็กเกจและลายนิ้วมือของใบรับรอง 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
    4. คลิกบันทึก

    ใบรับรองมี 2 ประเภท ได้แก่

    • ใบรับรองสำหรับการแก้ไขข้อบกพร่อง: ใช้ใบรับรองประเภทนี้กับแอปที่คุณกำลังทดสอบและโค้ดอื่นๆ ที่ไม่ใช่โค้ดเวอร์ชันที��ใช้งานจริงเท่านั้น อย่าพยายามเผยแพร่แอปที่ลงนามด้วยใบรับรองสำหรับการแก้ไขข้อบกพร่อง เครื่องมือ Android SDK จะสร้างใบรับรองนี้โดยอัตโนมัติเมื่อคุณเรียกใช้บิลด์การแก้ไขข้อบกพร่อง
    • ใบรับรองสำหรับการเผยแพร่: ใช้ใบรับรองนี้เมื่อคุณพร้อมที่จะเผยแพร่แอปไปยัง App Store เครื่องมือ Android SDK จะสร้างใบรับรองนี้เมื่อคุณเรียกใช้บิลด์ที่เผยแพร่

    ดูข้อมูลเพิ่มเติมเกี่ยวกับการลงนามในแอปพลิเคชัน Android และใบรับรองได้ที่คู่มือการลงนามในแอป

    หากใช้ Play App Signing ให้ไปที่การทำงานร่วมกับผู้ให้บริการ API เพื่อดึงข้อมูลลายนิ้วมือของใบรับรองการลงนาม หากคุณจัดการคีย์การลงนามด้วยตนเอง โปรดดู การลงนามในแอปพลิเคชันด้วยตนเอง หรือดูวิธีการสำหรับสภาพแวดล้อมของบิลด์

    แอป iOS

    เพิ่มรหัสชุดซอฟต์แวร์ของแอปพลิเคชัน iOS แต่ละรายการที่คุณต้องการ ให้สิทธิ์

    1. เลือกแอป iOS
    2. คลิก + เพิ่ม
    3. เพิ่มรหัสชุดเพื่อยอมรับคำขอจากแอป iOS ที่มีรหัสดังกล่าว
    4. คลิกบันทึก

    ดูคําแนะนําสําหรับการจํากัดแอปพลิเคชันได้ที่การจํากัดแอปพลิเคชันที่แนะนํา

  5. เลือกบันทึก

ตั้งค่าข้อจำกัดของ API สำหรับคีย์ API

  1. เปิดหน้าข้อมูลเข้าสู่ระบบของ Google Maps Platform ในคอนโซล Google Cloud

  2. เลือกคีย์ API ที่ต้องการจำกัด

  3. ในหน้าแก้ไขคีย์ API ภายในข้อจํากัดของ API ให้ทําดังนี้

    • เลือกจำกัดคีย์

    • เปิดเลือก API แล้วเลือก API หรือ SDK ที่คุณต้องการให้แอปพลิเคชันเข้าถึงโดยใช้คีย์ API

    หาก API หรือ SDK ไม่แสดง คุณจะต้องเปิดใช้ ดูรายละเอียดได้ที่หัวข้อวิธี เปิดใช้ API หรือ SDK อย่างน้อย 1 รายการ

    จำกัด API ในหน้าแก้ไขคีย์ API

  4. เลือกบันทึก

    ข้อจำกัดจะกลายเป็นส่วนหนึ่งของคำจำกัดความคีย์ 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 ที่สร้างขึ้นโดยอัตโนมัติ ดูข้อมูลเพิ่��������ม�����ี่ยวกับข้อจ���กั����ี่แนะนำได้ที่ใช้ข้อจำกัดที่แนะนำ ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้ เครื่องมือสํารวจเมตริกได้ที่สร้างแผนภูมิด้วยเครื่องมือสํารวจเมตริก

  1. ไปที่เครื่องมือสำรวจเมตริกของคอนโซล Google Cloud

  2. ลงชื่อเข้าใช้แล้วเลือกโปรเจ็กต์สำหรับคีย์ API ที่ต้องการตรวจสอบ

  3. ไปที่หน้าเมตริก Explorer สำหรับ API ประเภทของคุณ

  4. ตรวจสอบคีย์ API แต่ละรายการ

    1. เลือกเพิ่มตัวกรอง

    2. เลือกป้ายกำกับ credential_id

    3. เลือกค่าที่สอดคล้องกับคีย์ที่ต้องการตรวจสอบ

    4. จดบันทึก API ที่ใช้คีย์ API นี้ และยืนยัน��่าการใช้งานเป็นไปตามที่คาดไว้

    5. เมื่อเสร็จแล้ว ให้เลือกนำตัวกรองออก ที่ท้ายบรรทัดตัวกรองที่ใช้งานอยู่ เพื่อลบตัวกรองเพิ่มเติม

  5. ทำซ้ำสำหรับคีย์ที่เหลือ

  6. จำกัดคีย์ API ให้ใช้ได้เฉพาะกับ API ที่กำลังใช้งานอยู่

  7. หากพบการใช้งานที่ไม่ได้รับอนุญาต โปรดดูจัดการการใช้งานคีย์ API ที่ไม่ได้รับอนุญาต

เลือกประเภทการจํากัดแอปพลิเคชันที่ถูกต้องโดยใช้เครื่องมือสํารวจเมตริก

หลังจากยืนยันและดำเนินการที่จำเป็นเพื่อให้แน่ใจว่าระบบจะใช้คีย์ API สำหรับบริการ Google Maps Platform ที่ใช้เท่านั้นแล้ว ให้ยืนยันว่าคีย์ API มีข้อจำกัดของแอปพลิเคชันที่ถูกต้องด้วย

หากคีย์ API มีข้อจำกัดของคีย์ API ที่แนะนำ ให้ใช้ข้อจำกัดเหล่านั้น ดูข้อมูลเพิ่มเติมได้ที่ใช้ข้อจำกัดของคีย์ API ที่แนะนำ

หากคีย์ API ไม่มีคำแนะนำในการจำกัด ให้พิจารณาประเภทของ การจำกัดแอปพลิเคชันที่จะใช้ตาม platform_type ที่รายงานโดยใช้ โปรแกรมสำรวจเมตริก

  1. ไปที่เครื่องมือสำรวจเมตริกของคอนโซล Google Cloud

  2. ลงชื่อเข้าใช้แล้วเลือกโปรเจ็กต์สำหรับ API ที่ต้องการตรวจสอบ

  3. ไปที่หน้าเครื่องมือสำรวจเมตริกนี้: เครื่องมือสำรวจ เมตริก

  4. ตรวจสอบคีย์ API แต่ละรายการ

    1. เลือกเพิ่มตัวกรอง

    2. เลือกป้ายกำกับ credential_id

    3. เลือกค่าที่สอดคล้องกับคีย์ที่ต้องการตรวจสอบ

    4. เมื่อเสร็จแล้ว ให้เลือกนำตัวกรองออก ที่ท้ายบรรทัดตัวกรองที่ใช้งานอยู่ เพื่อลบตัวกรองเพิ่มเติม

  5. ทำซ้ำสำหรับคีย์ที่เหลือ

  6. เมื่อทราบประเภทแพลตฟอร์มสำหรับคีย์ 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 คีย์ต่อแอปพลิเคชันจะเหมาะสำหรับวัตถุประสงค์ด้านความปลอดภัย แต่คุณก็ใช้คีย์ที่จำกัดในแอปหลายแอปได้ตราบใดที่แอปเหล่านั้นใช้การจำกัดแอปพลิเคชันประเภทเดียวกัน

ใช้ข้อจำกัดของคีย์ API ที่แนะนำ

สำหรับเจ้าของโปรเจ็กต์ ผู้แก้ไข และผู้ดูแลระบบคีย์ API บางราย คอนโซล Google Cloud จะแนะนำข้อจำกัดคีย์ API ที่เฉพาะเจาะจงสำหรับคีย์ API ที่ไม่มีข้อจำกัดตามการใช้งานและกิจกรรมใน Google Maps Platform

หากมี คำแนะนำจะปรากฏเป็นตัวเลือกที่กรอกไว้ล่วงหน้าในหน้าข้อมูลเข้าสู่ระบบของ Google Maps Platform

API และ SDK ของ Google Maps Platform ที่คำแนะนำอัตโนมัติรองรับ

  • Maps JavaScript API ซึ่งรวมถึง บริการเส้นทาง (เดิม), บริการเมทริกซ์ระยะทาง (เดิม), บริการระดับความสูง, บริการการเข้ารหัสพิกัดภูมิศาสตร์ คลาสสถานที่, วิดเจ็ตการเติมข้อความอัตโนมัติของสถานที่ (ใหม่), Place Autocomplete Data API, ไลบรารี Places, บริการ Places, วิดเจ็ตการเติมข้อความอัตโนมัติของสถานที่ และ ชุดเครื่องมือ UI ของ Places

  • 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 ที่ยังไม่รองรับคำแนะนำอัตโนมัติ

    หากเห็นการใช้งานในบริการอื่นๆ อย่าใช้คำแนะนำโดยไม่ทำสิ่งต่อไปนี้ก่อน

    1. ตรวจสอบว่าการใช้งาน API ที่คุณเห็นในเครื่องมือสำรวจเมตริกของคอนโซล Google Cloud ถูกต้อง

    2. เพิ่มบริการที่ขาดหายไปลงในรายการ API ที่จะให้สิทธิ์ด้วยตนเอง

    3. เพิ่มการจำกัดแอปพลิเคชันที่ขาดหายไปสำหรับบริการที่เพิ่มลงในรายการ API ด้วยตนเอง หากโฆษณาอื่นๆ ที่คุณเพิ่มต้องใช้ข้อจำกัดของแอปพลิเคชันประเภทอื่น โปรดดูย้ายข้อมูลไปยังคีย์ API หลายรายการ

  • คีย์ API ของคุณไม่ได้ใช้ใน SDK หรือ API ฝั่งไคลเอ็นต์

  • คุณใช้คีย์ API ในแอปหรือเว็บไซต์ที่มีปริมาณการใช้งานต่ำซึ่งไม่มีการใช้งานในช่วง 60 วันที่ผ่านมา

  • คุณเพิ่งส��้างคีย์ใหม่ หรือเพิ่งติดตั้งใช้งานคีย์ที่มีอยู่ในแอปใหม่ หากเป็นกรณีนี้ โปรดรออีก 2-3 วันเพื่อให้คำแนะนำอัปเดต

  • คุณใช้คีย์ API ในแอปพลิเคชันหลายรายการที่ต้องมีการจำกัดแอปพลิเคชันประเภทที่ขัดแย้งกัน หรือคุณใช้คีย์ API เดียวกันในแอปหรือเว็บไซต์ที่แตกต่างกันมากเกินไป ไม่ว่าในกรณีใด แนวทางปฏิบัติแนะนำคือคุณควรย้ายข้อมูลไปยังคีย์หลายรายการ ดูรายละเอียดเพิ่มเติมได้ที่ย้ายข้อมูลไปยังคีย์ API หลายรายการ

สาเหตุที่เห็นคำแนะนำที่ไม่สมบูรณ์

  • คุณใช้คีย์ API ในแอปหรือเว็บไซต์ที่มีปริมาณการใช้งานต่ำซึ่งไม่มีการใช้งานในช่วง 60 วันที่ผ่านมา

  • คุณเพิ่งเริ่มใช้คีย์ที่มีอยู่กับ API หรือบริการใหม่เมื่อเร็วๆ นี้ และไปป์ไลน์คำแนะนำการจำกัดคีย์ API อัตโนมัติยังไม่ได้ประมวลผลเมตริกการใช้งานที่อัปเดต การเผยแพร่เมตริกการใช้งานอาจใช้เวลา 2-3 วัน

    หากเห็นการใช้งานในบริการอื่นๆ อย่าใช้คำแนะนำโดยไม่ทำสิ่งต่อไปนี้ก่อน

    1. ตรวจสอบว่าการใช้งาน API ที่คุณเห็นในเครื่องมือสำรวจเมตริกของคอนโซล Google Cloud ถูกต้อง

    2. เพิ่มบริการที่ขาดหายไปลงในรายการ API ที่จะให้สิทธิ์ด้วยตนเอง

    3. เพิ่มการจำกัดแอปพลิเคชันที่ขาดหายไปสำหรับบริการที่เพิ่มลงในรายการ API ด้วยตนเอง หากโฆษณาอื่นๆ ที่คุณเพิ่มต้องใช้ข้อจำกัดของแอปพลิเคชันประเภทอื่น โปรดดูย้ายข้อมูลไปยังคีย์ API หลายรายการ

    4. หากไม่จำเป็นต้องจำกัดคีย์โดยด่วน เช่น เนื่องจาก การใช้งานที่ไม่ได้รับอนุญาต คุณอาจรอ 1-2 วันเพื่อให้ คำแนะนำอัปเดต

เหตุผลที่คุณอาจเห็นคําแนะนําที่ไม่แสดงในแผนภูมิ

  • แอปหรือเว็บไซต์ของคุณส่งการเข้าชมที่เพิ่มขึ้นอย่างรวดเร็วในระยะเวลาสั้นๆ เท่านั้น ในกรณีนี้ ให้ เปลี่ยนจากมุมมองแผนภูมิเพื่อแสดงตารางหรือทั้ง 2 อย่าง เนื่องจาก การใช้งานจะยังคงแสดงในคำอธิบาย ดูข้อมูลเพิ่มเติมได้ที่การสลับ คำอธิบาย แผนภูมิทั้งหมด

  • การเข้าชมมาจาก Maps Embed API ดูวิธีการได้ที่ ระบุ API ที่ใช้คีย์ API ของคุณ

  • การเข้าชมจากแอปหรือเว็บไซต์อยู่นอกช่วงวันที่ที่ใช้ได้ใน เครื่องมือสำรวจเมตริกของคอนโซล Google Cloud

  1. เปิดหน้าข้อมูลเข้าสู่ระบบของ Google Maps Platform ในคอนโซล Google Cloud

  2. หากมี ให้เลือกใช้การจำกัดที่แนะนำ

    ใช้ข้อจำกัดที่แนะนำ

  3. เลือกตรวจสอบการใช้งาน API เพื่อยืนยันว่ามีการใช้คีย์ API ในบริการใด ��ากเห็นบริการอื่นที่ไม่ใช่ Google Maps Platform ให้หยุดชั่วคราว เพื่อตรวจสอบขั้นตอนการแนะนำข้างต้นด้วยตนเอง ดูขั้นตอนการแก้ปัญหา ที่จุดเริ่มต้นของส่วน ใช้ข้อจำกัดของคีย์ API ที่แนะนำ

  4. ตรวจสอบอีกครั้งว่าข้อจํากัดที่กรอกไว้ล่วงหน้าตรงกับเว็บไซต์และแอป ที่คุณคาดว่าจะใช้คีย์ API

    แนวทางปฏิบัติแนะนำ: จัดทำเอกสารและนำข้อจำกัดของแอปพลิเคชันหรือ API ที่ไม่ได้เชื่อมโยงกับบริการของคุณออก หากมีสิ่งใดหยุดทำงานเนื่องจากทรัพยากร Dependency ที่ไม่คาดคิด คุณจะเพิ่มแอปหรือ API ที่จำเป็นกลับเข้าไปได้

    • หากคุณทราบว่าแอป เว็บไซต์ หรือ API หายไปจากคำแนะนำ อย่างชัดเจน ให้เพิ่มด้วยตนเองหรือรอ 2-3 วันเพื่อให้ คำแนะนำอัปเดต

    • หากต้องการความช่วยเหลือเพิ่มเติมเกี่ยวกับคําแนะนําที่แนะนํา โปรดติดต่อ ทีมสนับสนุน

  5. เลือกใช้

สิ่งที่ควรทำหากใบสมัครถูกปฏิเสธหลังจากใช้คำแนะนำ

หากสังเกตเห็นว่าแอปหรือเว็บไซต์ถูกปฏิเสธหลังจากใช้ข้อจำกัด ให้มองหาข้อจำกัดของแอปพลิเคชันที่คุณต้องเพิ่มในข้อความแสดงข้อผิดพลาดในการตอบกลับ API

SDK และ API ฝั่งไคลเอ็นต์

แอปที่อิงตามเบราว์เซอร์และ WebView

โดยทั่วไปแล้ว เบราว์เซอร์สมัยใหม่จะปกปิดส่วนหัว Referer ในคำขอข้ามต้นทาง เพื่อเหตุผลด้านความเป็นส่วนตัว ซึ่งมักจะลดส่วนหัวดังกล่าวลงเหลือ Origin อย่างไรก็ตาม พฤติกรรมที่แน่นอนจะขึ้นอยู่กับreferrer-policyของ เว็บไซต์โฮสติ้งที่ใช้ และอาจแตกต่างกันไปตามเบราว์เซอร์และเวอร์ชันของผู้ใช้

โดยปกติแล้ว เว็บแอปพลิเคชันที่ใช้สคีม URI ที่ไม่โปร่งใสหรือสคีม URI ในเครื่องเพื่อโหลดเนื้อหาจะทำให้เบราว์เซอร์ที่แสดงผลหรือ WebView ปิดบังส่วนหัว Referer จากการเรียกขาออกทั้งหมด ซึ่งอาจทำให้คำขอที่ใช้คีย์ API ที่มีการจำกัดเว็บไซต์ล้มเหลว

ดูคำแนะนำเพิ่มเติมได้ที่ โฮสต์แอปที่ใช้เบราว์เซอร์ในเซิร์ฟเวอร์

วิธีการแก้ปัญหาสำหรับแอปที่ใช้เบราว์เซอร์และ WebView

  • สำหรับ Maps JavaScript API โปรดดูรายละเอียดเกี่ยวกับวิธีให้สิทธิ์แอปพลิเคชันในคอนโซลดีบักของเบราว์เซอร์

    ระบบรองรับรูปแบบ URI ที่ไม่ค่อยได้ใช้บางส่วน หากบางส่วนของแอปพลิเคชันไม่ทำงานในสคีม URI ที่ไม่ปกติ แม้หลังจากให้สิทธิ์ผู้แนะนำที่จำเป็นแล้ว คุณอาจต้องโฮสต์แอปพลิเคชันจากระยะไกลในเซิร์ฟเวอร์และโหลดผ่าน 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 และ API ของ Google Maps Platform ที่ใหม่กว่าจะรองรับข้อจำกัดของตัวอ้างอิงด้วย แต่โปรดทราบว่าเว็บเบราว์เซอร์หรือ WebView อาจจำกัดส่วนหัว RefererOrigin สำหรับคำขอแบบข้ามต้นทาง และอาจไม่ส่งส่วนหัวดังกล่าวเลย เช่น สำหรับทรัพยากรที่เข้าถึงในเครื่อง หรือสำหรับทรัพยากรที่แสดงผ่านโปรโตคอลอื่นที่ไม่ใช่ HTTP หรือ HTTPS

หากใช้ Maps JavaScript API ใน��อปพลิเคชันไม่ได้ และข้อจํากัดของเว็บไซต์ใช้ไม่ได้ โปรดดูการเรียกใช้บริการเว็บฝั่งไคลเอ็นต์อย่างปลอดภัย เพื่อดูวิธีออกการเรียกใช้บริการเว็บของ Maps Platform อย่างปลอดภัยจากภายในแอปพลิเคชันฝั่งไคลเอ็นต์ที่อิงตามเบราว์เซอร์

เคล็ดลับในการตรวจสอบข้อจำกัดของ API

หากต้องการตรวจสอบข้อจำกัด API ที่จำเป็น โปรดดูระบุ API ที่ใช้คีย์ API ของคุณ

หากไม่แน่ใจว่าจะใช้ข้อจำกัดใด ให้ทำดังนี้

  1. บันทึกข้อจำกัดปัจจุบันไว้ใช้อ้างอิงในอนาคต
  2. นำออกชั่วคราวขณะที่คุณตรวจสอบปัญหา คุณตรวจสอบการใช้งานเมื่อเวลาผ่านไปได้โดยทำตามขั้นตอนในตรวจสอบการใช้งานคีย์ API
  3. และติดต่อทีมสนับสนุนหากจำเป็น

ลบคีย์ API ที่ไม่ได้ใช้

ก่อนที่จะลบคีย์ API โปรดตรวจสอบว่าไม่ได้ใช้คีย์ดังกล่าวในการใช้งานจริง หากไม่มีการเข้าชมที่สำเร็จ คุณก็ลบคีย์ได้อย่างปลอดภัย ดูข้อมูลเพิ่มเติมได้ที่ตรวจสอบการใช้คีย์ API

วิธีลบคีย์ API

  1. เปิดหน้าข้อมูลเข้าสู่ระบบของ Google Maps Platform ในคอนโซล Google Cloud

  2. เลือกคีย์ API ที่ต้องการลบ

  3. เลือกปุ่มลบที่ด้านบนของหน้า

  4. ในหน้าลบข้อมูลเข้าสู่ระบบ ให้เลือกลบ

    การลบคีย์ API จะใช้เวลาสักครู่ในการเผยแพร่ หลังจากที่การเผยแพร่เสร็จสมบูรณ์ ระบบจะปฏิเสธการเข้าชมที่ใช้คีย์ API ที่ลบไปแล้ว

โปรดระมัดระวังเมื่อหมุนเวียนคีย์ API

การหมุนเวียนคีย์ API จะสร้างคีย์ใหม่ที่มีข้อจำกัดทั้งหมดของคีย์เก่า ในช่วงเวลานี้ ระบบจะยอมรับทั้งคีย์เก่าและคีย์ใหม่ ซึ่งจะช่วยให้คุณมี โอกาสย้ายข้อมูลแอปไปใช้คีย์ใหม่

ก่อนหมุนเวียนคีย์ API

  • ก่อนอื่นให้ลองจำกัดคีย์ API ตามที่อธิบายไว้ในจำกัดคีย์ API

  • หากจำกัดคีย์ API ไม่ได้เนื่องจากประเภทการจำกัดแอปพลิเคชันขัดแย้งกัน ให้ย้ายข้อมูลไปยังคีย์ใหม่หลายรายการ (ที่จำกัด) ตามที่อธิบายไว้ในย้ายข้อมูลไปยังคีย์ API หลายรายการ การย้ายข้อมูล ช่วยให้คุณควบคุมไทม์ไลน์การย้ายข้อมูลและการเปิดตัวคีย์ API ใหม่ได้

หากทำตามคำแนะนำข้างต้นไม่ได้ และคุณต้องหมุนเวียนคีย์ API เพื่อป้องกันการใช้งานที่ไม่ได้รับอนุญาต ให้ทำตามขั้นตอนต่อไปนี้

  1. เปิดหน้าข้อมูลเข้าสู่ระบบของ Google Maps Platform ในคอนโซล Google Cloud

  2. เปิดคีย์ API ที่ต้องการหมุนเวียน

  3. เลือกหมุนเวียนคีย์ที่ด้านบนของหน้า

  4. เปลี่ยนชื่อคีย์ API (ไม่บังคับ)

  5. เลือกสร้าง

  6. อัปเดตแอปพลิเคชันให้ใช้คีย์ใหม่

หลังจากอัปเดตแอปพลิเคชันให้ใช้คีย์ใหม่แล้ว ให้ลบคีย์เก่าโดยคลิกปุ่มลบคีย์ก่อนหน้าในส่วนคีย์ก่อนหน้า ของหน้าคีย์ API ใหม่

ย้ายข้อมูลไปยังคีย์ API หลายรายการ

หากต้องการย้ายข้อมูลจากการใช้คีย์ API เดียวสำหรับหลายแอปไปเป็นคีย์ API ที่ไม่ซ้ำกัน สำหรับแต่ละแอป ให้ทำดังนี้

  1. ระบุแอปที่ต้องใช้คีย์ใหม่

    • เว็บแอปอัปเดตได้ง่ายที่สุดเนื่องจากคุณควบคุมโค้ดทั้งหมด วางแผนที่จะอัปเดตคีย์ของแอปบนเว็บทั้งหมด
    • แอปบนอุปกรณ์เคลื่อนที่นั้นยากกว่ามาก เนื่องจากลูกค้าต้องอัปเดตแอป ก่อนจึงจะใช้คีย์ใหม่ได้
  2. สร้างและจำกัดคีย์ใหม่: เพิ่มทั้งข้อจำกัดของแอปพลิเคชัน และข้อจำกัด API อย่างน้อย 1 รายการ ดูข้อมูลเพิ่มเติมได้ที่แนวทางปฏิบัติแนะนำ

  3. เพิ่มคีย์ใหม่ลงในแอป: สำหรับแอปบนอุปกรณ์เคลื่อนที่ กระบวนการนี้อาจใช้เวลาหลายเดือนจนกว่าผู้ใช้ทั้งหมดจะอัปเดตเป็นแอปเวอร์ชันล่าสุดที่มีคีย์ 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 จะคล้ายกับการเรียกใช้ Web Service 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 ที่พร้อมใช้งาน

  • จัดเก็บข้อมูลลับในการลงนามของ Store ไว้ภายนอกซอร์สโค้ดและซอร์ส ทรีของแอปพลิเคชัน หากคุณใส่ข้อมูลลับในการลงนามหรือข้อมูลส่วนตัวอื่นๆ ในตัวแปรสภาพแวดล้อม หรือรวมไฟล์ที่จัดเก็บแยกกันแล้วแชร์โค้ด ข้อมูลลับในการลงนามจะไม่รวมอยู่ในไฟล์ที่แชร์ หากจัดเก็บข้อมูลลับในการลงนามหรือข้อมูลส่วนตัวอื่นๆ ไว้ในไฟล์ ให้เก็บไฟล์ไว้นอกโครงสร้างแหล่งที่มาของแอปพลิเคชันเพื่อไม่ให้ข้อมูลลับในการลงนามอยู่ในระบบควบคุมซอร์สโค้ด ข้อควรระวังนี้มีความสำคัญอย่างยิ่งหากคุณใช้ระบบการจัดการซอร์สโค้ดแบบสาธารณะ เช่น 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 ที่มีสิทธิ์ของบัญชีบริการ

เนื่องจากบัญชีบริการอาจมีสิทธิ์ที่ก��้างมาก เราจึงขอแนะนำให้ใช้ OAuth 2.0 เพื่อให้สิทธิ์การเรียก Server-to-Server ระหว่างแอปพลิเคชันฝั่งเซิร์ฟเวอร์ที่เชื่อถือได้ของนักพัฒนาซอฟต์แวร์กับเซิร์ฟเวอร์ของ Google Maps Platform

สำหรับแอปพลิเคชันฝั่งไคลเอ็นต์ที่ทำงานบนอุปกรณ์ของผู้ใช้ปลายทาง เราขอแนะนำให้ใช้วิธีการตรวจสอบสิทธิ์อื่นๆ เช่น คีย์ 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

เรียกใช้บริการเว็บบนอุปกรณ์เคลื่อนที่โดยตรงอย่างปลอดภัย

หากตั้งค่าพร็อกซีเซิร์ฟเวอร์ที่ปลอดภัยสำหรับแอปฝั่งไคลเอ็นต์ไม่ได้ ให้รักษาความปลอดภัยของแอปพลิเคชันโดยทำตามขั้นตอนต่อไปนี้

  1. ใช้ส่วนหัว HTTP ดังนี้

    • Android: ใช้ส่วนหัว HTTP ของ X-Android-Package และ X-Android-Cert

    • iOS: ใช้ส่วนหัว HTTP ของ X-Ios-Bundle-Identifier

  2. เพิ่มข้อจํากัดของแอปพลิเคชันที่เกี่ยวข้องลงในคีย์ Android หรือ iOS

  3. ก่อนที่จะพิจารณาออกการเรียกจากแอปพลิเคชันบนอุปกรณ์เคลื่อนที่ไปยัง บริการเว็บ 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 โปรดทราบว่า 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 หลักในส่วนX-Ios-Bundle-Identifier ส่วนหัวเสมอเมื่อให้สิทธิ์แอปพลิเคชัน iOS

ดูข้อมูลเพิ่มเติมได้ที่บทความ จัดการคีย์ API และ ใช้คีย์ API เพื่อเข้าถึง API

โฮสต์แอปที่ใช้เบราว์เซอร์บนเซิร์ฟเวอร์

เฟรมเวิร์ก เช่น Apache Cordova ช่วยให้คุณสร้าง แอปแบบไฮบริดแบบหลายแพลตฟอร์มที่ทำงานภายใน WebView ได้อย่างสะดวก อย่างไรก็ตาม เราไม่รับประกันว่าข้อจำ��ัดของเว็บไซต์สำหรับคีย์ API จะทำงานได้อย่างถูกต้อง เว้นแต่จะโหลดเว็บแอปโดยใช้ HTTP หรือ HTTPS จากเว็บไซต์ที่คุณควบคุมและให้สิทธิ์

ในหลายกรณี ทรัพยากรที่รวมไว้ซึ่งโหลดจากภายในแอปพลิเคชันแบบไฮบริดในเครื่อง หรือเข้าถึงโดยใช้ URL ของไฟล์ในเครื่องจะทำให้การให้สิทธิ์ตามผู้แนะนำใช้งานไม่ได้ เนื่องจากเครื่องมือเบราว์เซอร์ที่ขับเคลื่อน WebView จะละเว้นการส่งส่วนหัว Referer หากต้องการหลีกเลี่ยงปัญหานี้ ให้โฮสต์เว็บแอปพลิเคชันฝั่งเซิร์ฟเวอร์ ไม่ใช่ฝั่งไคลเอ็นต์

หรือสำหรับแอปพลิเคชันบนอุปกรณ์เคลื่อนที่ ให้พิจารณาใช้ Google Maps Platform Android และ iOS SDK แบบเนทีฟที่มีอยู่แทนการใช้ SDK บนเว็บ

ใช้ App Check เพื่อรักษาความปลอดภัยของคีย์ API

SDK และ API บางอย่างของ Maps ช่วยให้คุณผสานรวมกับ Firebase App Check ได้ App Check ช่วย ปกป้องการเรียกจากแอปของคุณไปยัง Google Maps Platform โดยการบล็อกการเข้าชม ที่มาจากแหล่งที่มาอื่นๆ นอกเหนือจากแอปที่ถูกต้อง โดยจะตรวจสอบโทเค็นจากผู้ให้บริการการรับรอง การผสานรวมแอปกับ App Check จะช่วย ป้องกันคำขอที่เป็นอันตราย คุณจึงไม่ต้องเสียค่าใช้จ่ายสำหรับการเรียก API ที่ไม่ได้รับอนุญาต

วิธีการผสานรวม App Check

จัดการการใช้คีย์ API โดยไม่ได้รับอนุญาต

หากตรวจพบการใช้คีย์ API ที่ไม่ได้รับอนุญาต ให้ทำดังนี้เพื่อ แก้ไขปัญหา

  1. จำกัดคีย์: หากคุณใช้คีย์เดียวกันในแอปหลายแอป ให้ ย้ายข้อมูลไปยังคีย์ API หลายรายการ และใช้คีย์ API แยกกันสำหรับแต่ละแอป ดูรายละเอียดเพิ่มเติมได้ที่

  2. หากใช้ Places SDK หรือ Maps JavaScript API คุณก็ใช้ App Check เพื่อรักษาความปลอดภัยของคีย์ API ได้เช่นกัน

  3. เปลี่ยนหรือหมุนเวียนคีย์ในกรณีต่อไปนี้เท่านั้น

    • คุณตรวจพบการใช้งานที่ไม่ได้รับอนุญาตในคีย์ที่จำกัดไม่ได้ หรือจำกัดอยู่แล้ว และ App Check ใช้ไม่ได้

    • คุณต้องการดำเนินการอย่างรวดเร็วเพื่อรักษาความปลอดภัยของคีย์ API และหยุดการละเมิด แม้ว่าอาจส่งผลกระทบต่อการเข้าชมที่ถูกต้องจากแอปพลิเคชันของคุณก็ตาม

    ก่อนดำเนินการต่อ โปรดอ่าน โปรดระมัดระวังเมื่อหมุนเวียนคีย์ API

  4. หากยังคงพบปัญหาหรือต้องการความช่วยเหลือ โปรดติดต่อทีมสนับสนุน

ข้อจำกัดของแอปพลิเคชันและ 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 Autocomplete Data API Places API (ใหม่)2
      ไลบร��รี Places บริการ Places และ วิดเจ็ตการเติมข้อความอัตโนมัติของสถานที่ 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 Platform ล่าสุดโดยตรงผ่าน 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 อื่นไม่ได้ ให้รักษาความปลอดภัยของคีย์ที่มีอยู่โดยใช้ข้อจำกัดของแอปพลิเคชันเว็บไซต์

แอปและเซิร์ฟเวอร์ที่ใช้บริการเว็บ

สำหรับเซิร์ฟเวอร์และแอปฝั่งไคลเอ็นต์จากเครือข่ายภายในขององค์กรที่เชื่อถือได้ซึ่งใช้บริการเว็บร่วมกับคีย์ API ให้ใช้ข้อจำกัดของIP addressesแอปพลิเคชัน

ใช้สำหรับแอปและเซิร์ฟเวอร์ที่ใช้ API เหล่านี้

4 สำหรับแอปพลิเคชันบนอุปกรณ์เคลื่อนที่ ให้พิจารณาใช้ Navigation SDK

5 ใช้พร็อกซีเซิร์ฟเวอร์ที่ปลอดภัยเพื่อการใช้งานอุปกรณ์เคลื่อนที่อย่างปลอดภัย

6 สำหรับแอปพลิเคชันฝั่งไคลเอ็นต์ ให้พิจารณา ใช้บริการระบุตำแหน่งทางภูมิศาสตร์ดั้งเดิมที่แพลตฟอร์มมีให้ เช่น W3C Geolocation สำหรับเว็บเบราว์เซอร์ LocationManager หรือ ผู้ให้บริการ Fused Location API สำหรับ Android หรือเฟรมเวิร์ก Core Location ของ Apple สำหรับ iOS

7 สำหรับแอปพลิเคชันบนอุปกรณ์เคลื่อนที่ ให้พิจารณาใช้ Places SDK สำหรับ Android และ Places SDK สำหรับ iOS

8 หากต้องการใช้งานฝั่งไคลเอ็นต์อย่างปลอดภัย ให้ใช้พร็อกซีเซิร์ฟเวอร์ที่ปลอดภัย

แอป Android

สำหรับแอปใน Android ให้ใช้Android appsการจำกัดแอปพลิเคชัน ใช้สำหรับ แอปที่ใช้ SDK เหล่านี้

นอกจากนี้ ให้ป้องกันการเช็คอินคีย์ API ลงในการควบคุมเวอร์ชันโดยไม่ตั้งใจด้วยการใช้ปลั๊กอิน Secrets Gradle เพื่อแทรกข้อมูลลับ จากไฟล์ในเครื่องแทนการจ��ดเก็บไว้ใน Android Manifest

แอป iOS

สำหรับแอปใน iOS ให้ใช้iOS appsการจำกัดแอปพลิเคชัน ใช้สำหรับแอปและ เซิร์ฟเวอร์ที่ใช้ SDK เหล่านี้

อ่านเพิ่มเติม