מפתחות וממשקי API נדרשים לאפליקציות ולפרויקטים שמשתמשים בממשקי API ובערכות SDK של הפלטפורמה של מפות Google. מטעמי אבטחה ומאמץ מינימליים, כדאי לאבטח את מפתחות ה-API כשיוצרים אותם.
אמנם אפשר לאבטח מפתחות API אחרי שיוצרים אותם ומשתמשים בהם, אבל ייתכנו הגבלות שונות בהתאם לשימוש במפתח. עדכון או החלפה של מפתחות באפליקציות לנייד (Android ו-iOS) הם המסובכים ביותר, כי המפתחות לא מוחלפים עד שכל הלקוחות מעדכנים את האפליקציות שלהם. עדכון או החלפה של מפתחות באפליקציות JavaScript או שירותי אינטרנט הוא הרבה יותר פשוט, אבל יכול להיות שכדי לעדכן או להחליף את המפתחות האלה עדיין תצטרכו תכנון קפדני ועבודה מהירה.
נוהלי האבטחה שחלים על המוצר הספציפי של הפלטפורמה של מפות Google, כמו Maps JavaScript API, מפורטים בקטע מידע נוסף.
הגבלת מפתחות ה-API
כשאתם יוצרים את מפתחות ה-API בפעם הראשונה, כדאי להגביל אותם עם הגבלת אפליקציה ועם הגבלת API אחת או יותר.
הגבלות על אפליקציות מגבילות את השימוש במפתח API לפלטפורמה ספציפית (Android או iOS) או לאתרים ספציפיים (כתובת IP ציבורית ואתר אינטרנט). לכל מפתח API ספציפי אפשר להוסיף רק סוג אחד של הגבלת אפליקציה.
הגבלות על ממשקי API מגבילות את השימוש במפתחות API לממשקי API או לערכות SDK מהפלטפורמה של מפות Google. המערכת תעבד רק בקשות לשימוש בממשקי API או בערכות SDK שמשויכות למפתח API. בכל מפתח API נתון, אפשר לציין מגבלות API מסוימות, לפי הצורך.
אם לא אבטחתם את מפתח ה-API בזמן שיצרתם אותו, צרו מפתחות API נוספים והגבילו אותם, ואז עדכנו את כל האפליקציות במפתחות ה-API החדשים. אמנם, מפתח אחד לכל אפליקציה יהיה אידיאלי למטרות אבטחה, אבל ניתן להשתמש במפתחות מוגבלים במספר אפליקציות כל עוד סוגי ההגבלות על אפליקציות במפתח לא יגרמו לבעיות של אי-תאימות עם האפליקציות שמשתפות מפתח.
אם אתם מגבילים את מפתחות ה-API אחרי שנוצרו, מומלץ לבדוק את השימוש במפתח ל-API כדי לוודא שההגבלות לא יפרו את האפליקציות הקיימות.
נכנסים לדף Metrics במסוף Google Cloud.
בוחרים באפשרות הצגת מסננים.
בקטע Grouped by, בוחרים באפשרות Credential. תוכלו לראות אילו מפתחות API נמצאים בשימוש בשירותי Google השונים,
לוחצים על Credentials.
ביטול הבחירה של כל פרטי הכניסה.
לכל מקש שמוצג, בוחרים את המפתח ולוחצים על אישור.
מתוך Grouped by, בוחרים באפשרות API. תוכלו לראות את הגבלות ה-API שחלות על המפתח.
אם תבחרו באפשרות method API בדף Grouped by, תוכלו להבין אילו סוגים של הגבלות על אפליקציות מתאימים למפתח.
הגדרה של הגבלת אפליקציה למפתח API
- נכנסים לדף Credentials.
בוחרים את מפתח ה-API שרוצים להגדיר עליו הגבלה. הדף של נכס מפתח ה-API מופיע.
בקטע הגבלות על אפליקציות, בוחרים באפשרות הגבלות על אפליקציות.
בוחרים את אחד מסוגי ההגבלות ומספקים את המידע המבוקש אחרי רשימת ההגבלות.
סוג הגבלה תיאור גורמים מפנים מסוג HTTP יש לציין אתר אחד או יותר של גורמים מפנים. ניתן להשתמש בתווים כלליים לחיפוש כדי לאשר את כל תתי-הדומיין (לדוגמה, *.google.com
מקבל את כל האתרים שמסתיימים ב-.google.com
). יש לציין את התוויםhttps://
ו-http://
כפי שהם. יש להשתמש בייצוג מיוחד של סוגים אחרים של פרוטוקולים של כתובות URL של גורמים מפנים. למשל, צריך לפרמט אתfile:///path/to/
בפורמט__file_url__//path/to/*
. אחרי שמפעילים את ההפניות, חשוב לעקוב אחר השימוש כדי לוודא שהוא תואם לציפיות שלך. פרוטוקולי העזר הבאים נתמכים:about://, app://, applewebdata://, asset://, chrome://, content://, file://, ftp://, ionic://, local://, ms-appx://, ms-appx-web://, ms-local-stream://, prism://, qrc://, res://, saphtmlp://
.כתובות IP יש לציין כתובת IPv4 או IPv6 אחת או תת-רשת באמצעות סימון CIDR. מאחר שבקשת שירות אינטרנט בודקת את כתובת ה-IP החיצונית ומשווה אותה להגבלה של מפתח ה-API,צריך להשתמש בכתובת ה-IP הציבורית של השרת. אפליקציות ל-Android יש להוסיף את טביעת האצבע של אישור החתימה SHA-1 ואת שם חבילת ה-Android שלך מהקובץ AndroidManifest.xml
.אפליקציות ל-iOS מתחת לסוגים, בוחרים את מזהה החבילה המתאים של iOS מהרשימה. לוחצים על שמירה.
הגדרה של הגבלת API למפתח API
נכנסים לדף פרטי הכניסה.
בוחרים את מפתח ה-API שרוצים להגביל. הדף הגבלה ושינוי השם של מפתח ה-API מופיע.
בקטע הגבלות API:
לוחצים על Restrict key.
לוחצים על התפריט הנפתח Select API ובוחרים את ממשקי ה-API או ערכות ה-SDK שרוצים לאפשר לאפליקציה גישה אליהם באמצעות מפתח ה-API.
(אם API או SDK לא רשומים, צריך להפעיל אותם).
לוחצים על שמירה.
המגבלה הופכת לחלק מההגדרה של מפתח ה-API אחרי השלב הזה. אם לא תספקו את הפרטים המתאימים או לא תלחצו על "Save" (שמירה), מפתח ה-API לא יוגבל. (מידע נוסף זמין במדריך קבלת מפתח API עבור ה-API או ה-SDK שמעניינים אתכם.)
מחיקת מפתחות API שאינם בשימוש
לפני שמוחקים מפתח API, חשוב לוודא שלא נעשה בו שימוש בסביבת הייצור. אם לא מגיעה מספיק תנועה, סביר להניח שהמפתח יימחק.
כדי למחוק מפתח API:
נכנסים לדף Credentials.
בוחרים את מפתח ה-API שרוצים למחוק.
לוחצים על הלחצן מחיקה בחלק העליון של הדף.
כשתיבת הדו-שיח Delete credential (מחיקת פרטי כניסה) מופיעה, בוחרים באפשרות Delete (מחיקה).
מחיקת מפתח API צריכה להימשך כמה דקות. לאחר ההטמעה, התנועה עם מפתח ה-API שנמחק תידחה.
דרכים נוספות לאבטחת ממשקי ה-API
יש להיזהר ביצירת מחדש של מפתחות API
יצירה מחדש של מפתח API יוצרת מפתח חדש שכולל את כל ההגבלות של המפתח הקודם. בנוסף, יופעל טיימר של 24 שעות להשבתת מפתח ה-API הקודם.
במהלך חלון הזמן הזה, המפתח הישן והמפתח החדש יתקבלו. כך יש לכם אפשרות להעביר את האפליקציות ולהשתמש במפתח החדש. עם זאת, אפליקציות שעדיין משתמשות במפתח ה-API הישן יפסיקו לפעול לאחר פרק הזמן הזה.
נכנסים לדף של מפתחות API.
בוחרים באפשרות חזרה למפתח הקודם.
בתיבת הדו-שיח חזרה לגרסה קודמת לוחצים על חזרה לגרסה קודמת.
לאחר החזרה לגרסה הקודמת, "הגרסה החדשה" של המפתח הופכת לגרסה הקודמת, וטיימר השבתה חדש מוגדר עבורה 24 שעות. אפשר לחזור בין שני ערכי המפתח האלה עד שתיצרו שוב את המפתח.
היצירה המשנית הזו מחליפה את הערך הישן של המפתח הלא פעיל.
מעקב אחר השימוש ב-API
כדי לבדוק את השימוש במפתח API:
עוברים אל דף המדדים.
לוחצים על הצגת המסננים.
בקטע Group by, בוחרים באפשרות API method.
בלחיצה על קוד תגובה בוחרים באפשרות 2xx כדי לראות את הבקשות שבוצעו בהצלחה למפתח הזה.
אם תזהו שימוש לא מורשה:
מגבילים את המפתחות.
אם אתם משתמשים באותו מפתח בכמה אפליקציות, כדאי להעביר כמה מפתחות API, עדיף להשתמש במפתחות API נפרדים לכל אפליקציה.
אם השימוש הלא מורשה נמשך, צריך ליצור מחדש או למחוק את המפתחות שהושפעו.
שימוש במפתחות API נפרדים לכל אפליקציה
הפעולה הזו מגבילה את ההיקף של כל מפתח. אם מפתח API נפרץ, תוכלו למחוק או ליצור מחדש את המפתח הזה בלי שתצטרכו לעדכן את מפתחות ה-API האחרים.
העברה למפתחות API מרובים
כדי לעבור משימוש במפתח API אחד לכמה אפליקציות, למפתח API ייחודי אחד לכל אפליקציה:
לזהות אילו אפליקציות דורשות מפתחות חדשים.
- קל מאוד לעדכן אפליקציות אינטרנט, כי השליטה בכל הקוד מתבצעת. מתכננים לעדכן את כל המפתחות של האפליקציות מבוססות-האינטרנט.
- הרבה יותר קשה להשתמש באפליקציות לנייד, כי הלקוחות שלכם חייבים לעדכן את האפליקציות כך שתהיה אפשרות להשתמש במפתחות החדשים.
צרו והגבילו את המפתחות החדשים.
- צריך להוסיף גם הגבלה על אפליקציה וגם לפחות הגבלה אחת על ה-API.
מוסיפים את המפתחות החדשים לאפליקציות השונות.
- באפליקציות לנייד, התהליך הזה עשוי להימשך מספר חודשים עד שכל המשתמשים שלכם יתעדכנו לאפליקציה העדכנית עם מפתח ה-API החדש.
שיטות הגנה על ממשקי API של שירות אינטרנט או ממשקי API של אינטרנט סטטי
אחסון מפתחות API וסודות חתימה מחוץ לקוד המקור של האפליקציה. אם תציבו את מפתחות ה-API או כל מידע פרטי אחר במשתני הסביבה, או אם תכללו קבצים שמאוחסנים בנפרד ואז תשתפו את הקוד, מפתחות ה-API או סודות החתימה לא ייכללו בקבצים המשותפים.
מאחסנים מפתחות API או סודות חתימה בקבצים מחוץ לעץ המקור של האפליקציה. אם שמרתם מפתחות API או מידע פרטי אחר בקבצים, הקפידו לשמור את הקבצים מחוץ לעץ המקור של האפליקציה כדי להרחיק את המפתחות מהמערכת של בקרת קוד המקור. חשוב לעשות זאת במיוחד אם אתם משתמשים במערכת ציבורית לניהול קוד מקור, כמו GitHub.
ממשקי API של שירותי אינטרנט באינטרנט או שיטות הגנה על אפליקציות סטטיות באינטרנט
שימוש בשרת proxy. שרת ה-proxy מספק מקור רציף לאינטראקציה עם ה-API המתאים של הפלטפורמה של מפות Google. למידע נוסף על השימוש בשרת proxy, קראו את המאמר Live Licatively: שימוש בשרתי proxy עם ספריות הלקוח של Google Data API.
להסתיר או להצפין את מפתח ה-API או את סוד החתימה. זה מקשה על העתקת מפתחות API ונתונים פרטיים אחרים ישירות מהאפליקציה.
מידע נוסף
בטבלאות האלה מפורטות ההגבלות המתאימות על מפתחות API והשיטות המומלצות לאבטחה ב-API לכל ממשק API, SDK או שירות של הפלטפורמה של מפות Google.
אתרים עם JavaScript API, הטמעה או ממשקי API סטטיים של מפות Google
API/SDK/שירות | הגבלת אפליקציה (1) | הגבלת API (1) | שיטות מומלצות |
---|---|---|---|
API של JavaScript במפות (2) | הגבלה על הגורם המפנה של HTTP | Maps JavaScript API | |
שירות מסלולים, Maps JavaScript API | הגבלה על הגורם המפנה של HTTP | ממשק API למסלולים, Maps JavaScript API | |
שירות מטריצת מרחקים, Maps JavaScript API | הגבלה על הגורם המפנה של HTTP | DISTANCE Matrix API, Maps JavaScript API | |
שירות גובה, API של מפות JavaScript | הגבלה על הגורם המפנה של HTTP | API של העלאת גובה, Maps JavaScript API | |
שירות המרת כתובות לקואורדינטות (geocoding) , Maps JavaScript API | הגבלה על הגורם המפנה של HTTP | API לקידוד גיאוגרפי, API של מפות JavaScript | |
ספריית מקומות, Maps JavaScript API | הגבלה על הגורם המפנה של HTTP | API של מקומות, API של מפות Google ל-JavaScript | |
API של מפות Google להטמעה | הגבלה על הגורם המפנה של HTTP | Maps Embed API | |
API סטטי של מפות Google | הגבלה על הגורם המפנה של HTTP | Maps Static API | |
Street View Static API | הגבלה על הגורם המפנה של HTTP | Street View Static API |
אפליקציות ושרתים באמצעות שירותי אינטרנט
API/SDK/שירות | הגבלת אפליקציה (1) | הגבלת API (1) | שיטות מומלצות |
---|---|---|---|
API לאימות כתובות | הגבלת כתובת IP(4) | Address Validation API | |
API למסלול | הגבלת כתובת IP(4) | Directions API | |
API של מטריצת מרחקים | הגבלת כתובת IP(4) | Distance Matrix API | |
Elevation API | הגבלת כתובת IP(4) | Elevation API | |
API לקידוד גיאוגרפי | הגבלת כתובת IP(4) | Geocoding API | |
API למיקום גיאוגרפי | הגבלת כתובת IP(4) | Geolocation API | |
API של מקומות Google (5) | הגבלת כתובת IP(4) | Places API | |
API לכבישים | הגבלת כתובת IP(4) | Roads API | |
Routes API | הגבלת כתובת IP(4) | Routes API | |
Time Zone API | הגבלת כתובת IP(4) | Time Zone API |
אפליקציות ל-Android
API/SDK/שירות | הגבלת אפליקציה (1) | הגבלת API (1) | שיטות מומלצות |
---|---|---|---|
SDK של מפות ל-Android | הגבלה ב-Android | SDK של מפות ל-Android | |
SDK של מקומות ל-Android | הגבלה ב-Android | Places API |
אפליקציות ל-iOS
API/SDK/שירות | הגבלת אפליקציה (1) | הגבלת API (1) | שיטות מומלצות |
---|---|---|---|
SDK של מפות ל-iOS | הגבלה ב-iOS | SDK של מפות ל-iOS | |
SDK של מקומות ל-iOS | הגבלה ב-iOS | Places API |
1 אפשר להשתמש במפתח API ללא הגבלה עם כל API או SDK של Google Maps Platform. עם זאת, מומלץ מאוד להגביל את מפתחות ה-API, במיוחד בתרחישים הבאים:
סביבת הבדיקה תהיה גלויה לכולם או גלויה.
האפליקציה שמשתמשת במפתח API מוכנה לשימוש בסביבת ייצור.
2 לאפליקציות לנייד: כדאי להשתמש ב-SDK SDK המקורי ל-Android וב-Maps SDK ל-iOS.
3 ל-API של מפות Google ול-Street View Static API, בנוסף למפתח API, תצטרכו לספק חתימה דיגיטלית כדי לחרוג מהמכסה היומית של 25,000 טעינות של מפות.
אם אתם חותמים על בקשות, כדאי לבדוק כמה בקשות לא חתומות ביום אתם רוצים לאשר, ולהתאים את המכסות לבקשות ללא חתימה בהתאם.
4 הגבלות על כתובות IP עשויות להיות לא מעשיות בתרחישים מסוימים, כמו באפליקציות לנייד ובסביבות של ענן שמבוססות על כתובות IP דינמיות. בממשקי ה-API של שירותי האינטרנט של מפות Google בתרחישים האלה, תוכלו לאבטח את האפליקציות באמצעות שרת proxy או ערפול קוד (obfuscation).
5 לאפליקציות לנייד, כדאי להשתמש ב-Native SDK ל-Android וב-Places SDK ל-iOS.