שיטות מומלצות לאבטחה ב-API

קל לארגן דפים בעזרת אוספים אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.

מפתחי 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 כדי לוודא שהמגבלות לא מפריעות לאפליקציות הקיימות.

  1. נכנסים לדף המדדים של Google Cloud Console.

  2. בוחרים באפשרות הצגת מסננים.

  3. בקטע קיבוץ לפי, בוחרים פרטי כניסה. תוכלו לראות באילו מפתחות API משתמשים עם שירותי Google.

  4. לוחצים על פרטי כניסה.

  5. מבטלים את הבחירה בכל פרטי הכניסה.

  6. עבור כל מקש שמוצג, בוחרים את המקש ולוחצים על אישור.

  7. בקטע מקובץ לפי, בוחרים באפשרות API. תוכלו לראות על אילו הגבלות ב-API להחיל את המפתח.

    כשבוחרים באפשרות שיטת API מהדף מקובץ לפי קבוצה, אפשר לזהות אילו סוגי הגבלות על אפליקציות הכי מתאימים למפתח.

הגדרת הגבלת אפליקציה למפתח API

  1. עוברים אל דף פרטי הכניסה.
  2. בוחרים את מפתח ה-API שרוצים להגדיר עבורו הגבלה. יופיע דף הנכס של מפתח ה-API.

  3. בקטע הגבלות מפתח, בוחרים באפשרות הגבלות על אפליקציות.

    בוחרים את אחד מסוגי ההגבלות ומציינים את המידע המבוקש בהתאם לרשימת ההגבלות.

    סוג הגבלה תיאור
    גורמים מפנים מסוג 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 מהרשימה.
  4. לוחצים על שמירה.

הגדרת הגבלת API למפתח API

  1. עוברים אל דף פרטי הכניסה.

  2. בוחרים את מפתח ה-API שרוצים להגביל. יופיע הדף הגבלה ושינוי של מפתח ה-API.

  3. בקטע הגבלות API:

    • לוחצים על הגבלת מפתח.

    • לוחצים על התפריט הנפתח בחירת ממשקי API ובוחרים את ממשקי ה-API או ערכות ה-SDK שרוצים לאפשר לאפליקציה לגשת אליהם באמצעות מפתח ה-API.

      (אם ממשק API או SDK לא מופיע, עליכם להפעיל אותו.)

  4. לוחצים על שמירה.

    ההגבלה הופכת לחלק מהגדרת מפתח ה-API אחרי השלב הזה. אם לא תספקו את הפרטים המתאימים או לא תלחצו על "שמירה", מפתח ה-API לא יוגבל. (למידע נוסף, עיינו במדריך קבלת מפתח API עבור ה-API הספציפי או ה-SDK שמעניין אתכם).

מחיקת מפתחות API שאינם בשימוש

לפני שמוחקים מפתח API, יש לוודא שהוא לא נמצא בשימוש בסביבת הייצור. אם התנועה לא תצליח, סביר להניח שהמפתח יימחק.

כדי למחוק מפתח API:

  1. עוברים אל דף פרטי הכניסה.

  2. בוחרים את מפתח ה-API שרוצים למחוק.

  3. לוחצים על מחיקה בחלק העליון של הדף.

  4. כשתיבת הדו-שיח מחיקת פרטי כניסה תופיע, בוחרים באפשרות מחיקה.

    הפצת מפתח API נמשכת כמה דקות. לאחר ההדבקה, תנועת הגולשים באמצעות מפתח ה-API שנמחק תידחה.

דרכים נוספות לאבטח את ממשקי ה-API שלכם

כדאי להיזהר כשיוצרים מחדש מפתחות API

יצירה מחדש של מפתח API יוצרת מפתח חדש, שכולל את כל המגבלות של המפתח הישן. בנוסף, יופעל טיימר של 24 שעות כדי להשבית את מפתח ה-API הישן.

במהלך חלון הזמן הזה, המפתח הישן והמפתח החדש מתקבלים, כדי לאפשר לך להעביר את האפליקציות שלך לשימוש במפתח החדש. עם זאת, אפליקציות שעדיין משתמשות במפתח ה-API הישן יפסיקו לפעול בתום הזמן הזה.

  1. עוברים אל דף מפתחות ה-API.

  2. בוחרים באפשרות חזרה למפתח הקודם.

  3. בתיבת הדו-שיח חזרה לגרסה הקודמת, לוחצים על חזרה לגרסה הקודמת.

לאחר החזרה למצב הקודם, הגרסה הקודמת של המפתח כוללת את הגרסה הקודמת, וטיימר חדש להשבתה מוגדר ל-24 שעות. אפשר לחזור בין שני הערכים העיקריים עד שתיצרו מחדש את המפתח.

הדור השני הזה מחליף את הערך הישן של המפתח שאינו פעיל.

מעקב אחר השימוש שלך ב-API

כדי לבדוק את השימוש במפתח ה-API:

  1. עוברים אל דף המדדים.

  2. לוחצים על הצגת מסננים.

  3. בקטע קיבוץ לפי, בוחרים שיטת API.

  4. בקטע קוד תגובה, בוחרים באפשרות 2xx כדי לראות את הבקשות שבוצעו בהצלחה למפתח הזה.

אם זיהית שימוש לא מורשה, יש לבצע את הפעולות הבאות:

  1. הגבלת המפתחות.

    אם משתמשים באותו מפתח בכמה אפליקציות, עוברים למספר מפתחות API, עדיף להשתמש במפתחות API נפרדים לכל אפליקציה.

  2. אם המשך השימוש ללא אישור נמשך, צריך ליצור מחדש או למחוק את המפתחות המושפעים.

  3. יצירת קשר עם התמיכה.

יש להשתמש במפתחות API נפרדים לכל אפליקציה

פעולה זו מגבילה את ההיקף של כל מפתח. אם מפתח API כלשהו נפרץ, תוכלו למחוק את המפתח הרלוונטי או ליצור אותו מחדש בלי לעדכן את מפתחות ה-API האחרים.

העברה למספר מפתחות API

כדי לעבור משימוש במפתח API אחד למספר אפליקציות, למפתח API ייחודי אחד לכל אפליקציה, יש לבצע את הפעולות הבאות:

  1. לזהות אילו אפליקציות יזדקקו למפתחות חדשים.

    • קל יותר לעדכן אפליקציות אינטרנט, כי השליטה בקוד היא בידיים שלכם. מתכננים לעדכן את כל האפליקציות מבוססות-האינטרנט&#39.
    • אפליקציות לנייד קשות יותר, כי הלקוחות צריכים לעדכן את האפליקציות כדי שהם יוכלו להשתמש במפתחות החדשים.
  2. יוצרים ומגבילים את המפתחות החדשים.

    • מוסיפים הגבלת אפליקציה ולפחות הגבלה אחת על ה-API.
  3. מוסיפים את המפתחות החדשים לאפליקציות השונות.

    • כשמדובר באפליקציות לנייד, התהליך הזה עשוי לקחת חודשים עבור כל המשתמשים שלכם לעדכן לאפליקציה החדשה עם מפתח ה-API החדש.

שיטות הגנה על אפליקציות API של שירותי אינטרנט או Static Web APIs

  • אחסון מפתחות API וסודות חתימה מחוץ לקוד המקור של האפליקציה. אם תוסיפו את מפתחות ה-API או פרטים אישיים אחרים במשתני הסביבה או תכללו קבצים שמאוחסנים בנפרד ואז תשתפו את הקוד, מפתחות ה-API או הסודות לחתימה לא ייכללו בקבצים המשותפים.

  • אחסון מפתחות API או סודות החתימה בקבצים מחוץ לעץ המקור של האפליקציה. אם אתם מאחסנים מפתחות API או מידע פרטי אחר בקבצים, הקפידו לשמור את הקבצים מחוץ לעץ המקור של האפליקציה כדי למנוע את הסרת המפתחות ממערכת הבקרה של קוד המקור שלכם. נקודה זו חשובה במיוחד אם אתם משתמשים במערכת ניהול קוד ציבורי, כגון GitHub.

ממשקי Web Service API או Static Web APIs APIs לאפליקציות לנייד

  • משתמשים בשרת proxy. שרת ה-proxy מספק מקור חזק לאינטראקציה עם ה-API של הפלטפורמה של מפות Google. למידע נוסף על השימוש בשרת Proxy, ניתן לעיין במאמר Livigively: שימוש בשרתי proxy עם ספריות לקוח של Google Data API.

  • לטשטש או להצפין את מפתח ה-API או הסוד הסודי. התהליך הזה מקשה על העתקה של מפתחות API ונתונים פרטיים אחרים, ישירות מהאפליקציה.

מידע נוסף

בטבלאות האלה מפורטות המגבלות של מפתח ה-API והשיטות המומלצות לאבטחת ממשקי ה-API של כל הפלטפורמה של מפות Google, SDK או שירות.

אתרים עם JavaScript של JavaScript, הטמעה או ממשקי API סטטיים של מפות Google

API/SDK/שירות הגבלות על האפליקציה (1) הגבלת API (1) שיטות מומלצות
API של מפות Google ל-JavaScript (2) הגבלה על הגורם המפנה של HTTP Maps JavaScript API
שירות מסלולים, Maps JavaScript API הגבלה על הגורם המפנה של HTTP הוראות הגעה, API של Maps JavaScript API
שירות מטריצת מרחקים, Maps JavaScript API הגבלה על הגורם המפנה של HTTP מרחק מטריצת API, Maps JavaScript API
שירות הרמה, Maps JavaScript API הגבלה על הגורם המפנה של HTTP Elevation API, Maps JavaScript API
שירות המרת כתובות לקואורדינטות (geocoding) , Maps JavaScript API הגבלה על הגורם המפנה של HTTP ממשק API של קידוד גיאוגרפי, Maps JavaScript API
ספריית המקומות, Maps JavaScript API הגבלה על הגורם המפנה של HTTP API של מקומות, Maps JavaScript API
API להטמעה של מפות Google הגבלה על הגורם המפנה של HTTP Maps Embed API
API של מפות סטטיות הגבלה על הגורם המפנה של HTTP Maps Static API
API של Street View סטטי הגבלה על הגורם המפנה של HTTP Street View Static API

אפליקציות ושרתים באמצעות שירותי אינטרנט

API/SDK/שירות הגבלות על האפליקציה (1) הגבלת API (1) שיטות מומלצות
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 של מקומות (5) הגבלה של כתובת IP(4) Places API
API של כבישים הגבלה של כתובת IP(4) Roads API
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. עם זאת, מומלץ מאוד להגביל את מפתחות ה-API, במיוחד בתרחישים הבאים:

  • סביבת הבדיקה תהיה גלויה לכול.

  • האפליקציה שמשתמשת במפתח API מוכנה לשימוש בסביבת ייצור.

2 לאפליקציות לנייד, כדאי להשתמש ב-SDK של Maps SDK ל-Android וב-Maps SDK ל-iOS.

3 ב-Maps Static API וב-Street View Static API, בנוסף למפתח API, צריך לספק חתימה דיגיטלית כדי לחרוג מהמכסה היומית של 25,000 טעינות של מפות.

אם אתם חותמים על בקשות, יש לבדוק כמה בקשות לא חתומות ביום אתם רוצים לאשר ולהתאים את המכסות של הבקשות הלא חתומות שלכם בהתאם.

4 הגבלות כתובת IP עשויות להיות לא שימושיות בתרחישים מסוימים. למשל, באפליקציות לנייד ובסביבות ענן שמסתמכות על כתובות IP דינמיות. כשאתם משתמשים ב-Maps Web Services בתרחישים האלה, תצטרכו לאבטח את האפליקציות באמצעות שרת proxy או ערפול קוד (obfuscation).

5 לאפליקציות לנייד, כדאי להשתמש ב-Native SDK for Android וב-places SDK ל-iOS.