כיצד אוכל להגן על מפתחות ה-API שלי מפני הופעה בתוצאות החיפוש?

כיצד אוכל להגן על מפתחות ה-API שלי מפני הופעה בתוצאות החיפוש?

צומת המקור: 2726143

שאלה: איך אני שומר שמפתחות ה-API שלי לא יהפכו לחלק מחיפוש GitHub של מישהו אחר?

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

ישנן מספר דרכים לאחסן מפתחות API בצורה מאובטחת:

  • משתני סביבה: אתה יכול לאחסן מפתחות API במשתני סביבה במחשב שלך, ולאחר מכן לגשת למשתנים אלה מהקוד שלך. לשיטה זו יש יתרון של שמירת המפתחות מחוץ לקוד שלך (הם נמצאים בסביבה שבה הקוד פועל). זה גם אומר שהמפתחות יכולים להיות שונים עבור סביבות שונות, כמו המחשב המקומי שלך, שרת פיתוח, שרת ייצור וכו'.
  • קבצי תצורה: אתה יכול גם לאחסן מפתחות API בקובץ תצורה נפרד שאינו כלול במאגר הקוד שלך. יש להוסיף את הקובץ הזה לקובץ שלך .גניטור קובץ כדי למנוע ממנו להיות מחויב למאגר שלך. הקפד להוסיף הרשאות מתאימות ברמת הקובץ לקובץ תצורה זה כדי למנוע גישה לא מורשית. בקוד שלך, היית קורא את מפתחות ה-API מהקובץ הזה.
  • מערכות ניהול סודות: עבור יישומים גדולים יותר או נתונים רגישים יותר, ייתכן שתשקול להשתמש ב-a מערכת ניהול סודות. אלו כלים מיוחדים כמו AWS Secrets Manager, HashiCorp's Vault ו- Secret Manager של גוגל שעוזרים לנהל גישה לסודות כמו מפתחות API.
  • שירותי תצורה ספציפיים לסביבה: לפלטפורמות כמו Heroku ו-Netlify יש תכונות או שירותים ספציפיים להגדרת משתני סביבה, שניתן להשתמש בהם לאחסון מפתחות API.
  • אחסון מוצפן: אם אתה צריך לאחסן את מפתחות ה-API במסד נתונים או מערכת אחסון אחרת, עליך להצפין אותם. בדרך זו, גם אם מישהו מקבל גישה למערכת האחסון, הם לא יוכלו להשתמש במפתחות ללא מפתח ההצפנה.

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

כדי להשתמש במשתני סביבה לאחסון מפתחות API

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

ראשית, הגדר את משתנה הסביבה במערכת שלך או בפלטפורמה שבה היישום שלך פועל. במערכת מבוססת יוניקס, אתה יכול להגדיר משתנה סביבה באמצעות ה יצוא פקודה:

% ייצוא API_KEY=

לאחר מכן, גש למשתנה הסביבה בקוד היישום שלך. לדוגמה, ב-Python, אתה יכול לגשת לערך של משתנה סביבה באמצעות ה- os מודול:

% python import os api_key = os.environ['API_KEY']

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

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

ראשית, צור קובץ תצורה, כגון config.json, ואחסן בו את מפתח ה-API:

json { "api_key": " " }

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

לבסוף, טען את קובץ התצורה בקוד האפליקציה שלך כדי לגשת למפתח ה-API. לדוגמה, ב-Python, אתה יכול לטעון קובץ תצורה של JSON ולגשת למפתח ה-API כך:

יבא את json עם open('config.json') בתור f
config = load(f) api_key = config['api_key']

נעל את ממשקי ה-API שלך

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

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

בול זמן:

עוד מ קריאה אפלה