שאלה: איך אני שומר שמפתחות ה-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 שלך מפני חשיפה מקרית, לפשט את הניהול של מידע רגיש, ולהקל על תחזוקת תצורות שונות עבור סביבות שונות. עליך לאכוף בקרות גישה נאותות על משתני הסביבה וקובצי התצורה כדי למנוע גישה לא מורשית.
ככל שהפרויקט שלכם גדל במורכבות (וחשיבותו), אולי כדאי לעבור לפלטפורמות עם יכולת מולדת כמו מערכות ניהול סודות או שירותי תצורה ספציפיים לסביבה לאחסון פריטים רגישים. עם זאת, הפתרונות המהירים האלה עוזרים לך להתחיל עם בסיס בטוח יותר.
- הפצת תוכן ויחסי ציבור מופעל על ידי SEO. קבל הגברה היום.
- EVM Finance. ממשק מאוחד למימון מבוזר. גישה כאן.
- Quantum Media Group. IR/PR מוגבר. גישה כאן.
- PlatoAiStream. Web3 Data Intelligence. הידע מוגבר. גישה כאן.
- מקור: https://www.darkreading.com/edge/how-do-i-protect-my-api-keys-from-appearing-in-github-search-results-
- :יש ל
- :הוא
- :לֹא
- :איפה
- $ למעלה
- a
- יכול
- התעללות
- גישה
- נגיש
- להוסיף
- הוסיף
- יתרון
- להתיר
- גם
- למרות
- an
- ו
- כל
- כל אחד
- API
- בקשה
- יישומים
- מתאים
- ARE
- AS
- At
- AWS
- BE
- הופך להיות
- התהוות
- ההתחלה
- להיות
- מוטב
- הפרה
- by
- CAN
- יכולות
- קוד
- סִמוּל
- מְחוּיָב
- מורכבות
- מושגים
- תְצוּרָה
- מוגדר
- לשקול
- לִשְׁלוֹט
- בקרות
- לִיצוֹר
- נתונים
- מדען נתונים
- מסד נתונים
- מפתח
- צעצועי התפתחות
- אחר
- ישירות
- do
- ראוי
- בְּמַהֲלָך
- e
- להקל
- קלות שימוש
- קל יותר
- בקלות
- או
- אחר
- הצף
- לאכוף
- לְהַבטִיחַ
- סביבה
- סביבות
- שווה
- וכו '
- Ether (ETH)
- אֲפִילוּ
- אי פעם
- דוגמה
- יצוא
- חיצוני
- תכונות
- שלח
- קבצים
- ראשון
- בעד
- נפלא
- החל מ-
- בדרך כלל
- GitHub
- גדל
- טיפול
- יש
- לעזור
- איך
- איך
- אולם
- HTTPS
- i
- אידאל
- if
- ליישם
- לייבא
- חשיבות
- in
- כלול
- מידע
- מולדת
- IT
- פריטים
- שֶׁלָה
- jpg
- ג'סון
- שמור
- שמירה
- מפתח
- מפתחות
- שפה
- גדול יותר
- מוביל
- כמו
- לִטעוֹן
- מקומי
- נראה
- מכונה
- לתחזק
- לעשות
- לנהל
- ניהול
- מנהל
- מאי..
- אומר
- שיטה
- יכול
- מודול
- יותר
- רוב
- המהלך
- my
- צורך
- of
- כבוי
- on
- or
- OS
- אחר
- הַחוּצָה
- בחוץ
- חלק
- הרשאות
- פלטפורמה
- פלטפורמות
- אפלטון
- מודיעין אפלטון
- אפלטון נתונים
- פוטנציאל
- פוטנציאל
- למנוע
- הפקה
- פּרוֹיֶקט
- תָקִין
- להגן
- בפומבי
- פיתון
- מָהִיר
- חומר עיוני
- מוּמלָץ
- מאגר
- תוצאות
- סיכונים
- ריצה
- s
- מַדְעָן
- חיפוש
- סוד
- לבטח
- מאובטח
- אבטחה
- סיכוני אבטחה
- רואה
- רגיש
- נפרד
- שירותים
- סט
- הצבה
- כמה
- משותף
- צריך
- דומה
- פשטות
- לפשט
- פתרונות
- מישהו
- מָקוֹר
- קוד מקור
- מיוחד
- ספציפי
- בימוי
- התחלה
- אחסון
- חנות
- כזה
- מערכת
- מערכות
- לקחת
- זֶה
- השמיים
- אותם
- אז
- אלה
- הֵם
- זֶה
- ל
- יַחַד
- כלים
- שתיים
- להשתמש
- מְשׁוּמָשׁ
- שימושים
- באמצעות
- ערך
- שונים
- קמרון
- Ve
- גרסה
- בקרת גרסאות
- מאוד
- באמצעות
- דֶרֶך..
- דרכים
- אשר
- מי
- יצטרך
- עם
- לְלֹא
- נצחנות
- היה
- אתה
- זפירנט