سوال: چگونه می توانم کلیدهای API خود را از تبدیل شدن به بخشی از جستجوی GitHub دیگران جلوگیری کنم؟
پاسخ: معمولاً به دلیل خطرات امنیتی احتمالی، ذخیره کردن کلیدهای API به طور مستقیم در کد شما توصیه نمی شود. اگر کد شما به اشتراک گذاشته شود یا در دسترس عموم قرار گیرد، هر کسی که کلید API را ببیند میتواند از آن استفاده کند، که به طور بالقوه منجر به سوء استفاده یا نقض امنیت میشود.
چندین راه برای ذخیره ایمن کلیدهای API وجود دارد:
- متغیرهای محیطی: می توانید کلیدهای API را در متغیرهای محیطی روی دستگاه خود ذخیره کنید و سپس از کد خود به این متغیرها دسترسی پیدا کنید. این روش این مزیت را دارد که کلیدها را از کد شما دور نگه می دارد (آنها در محیطی هستند که کد اجرا می شود). همچنین به این معنی است که کلیدها می توانند برای محیط های مختلف متفاوت باشند، مانند ماشین محلی شما، سرور توسعه، سرور تولید و غیره.
- فایل های پیکربندی: همچنین می توانید کلیدهای API را در یک فایل پیکربندی جداگانه ذخیره کنید که در مخزن کد شما موجود نیست. این فایل باید به شما اضافه شود .گیتیگنور فایل را برای جلوگیری از تعهد آن به مخزن شما. حتماً مجوزهای سطح فایل مناسب را به این فایل پیکربندی اضافه کنید تا از دسترسی غیرمجاز جلوگیری شود. در کد خود، کلیدهای API را از این فایل میخوانید.
- سیستم های مدیریت اسرار: برای برنامه های بزرگتر یا داده های حساس تر، می توانید از a استفاده کنید سیستم مدیریت اسرار. اینها ابزارهای تخصصی مانند AWS Secrets Manager، HashiCorp's Vault و Google's Secret Manager هستند که به مدیریت دسترسی به اسرار مانند کلیدهای API کمک می کنند.
- خدمات پیکربندی محیطی خاص: پلتفرم هایی مانند Heroku و Netlify دارای ویژگی ها یا خدمات خاصی برای تنظیم متغیرهای محیطی هستند که می توان از آنها برای ذخیره کلیدهای API استفاده کرد.
- ذخیره سازی رمزگذاری شده: اگر نیاز به ذخیره کلیدهای API در پایگاه داده یا سایر سیستم های ذخیره سازی دارید، باید آنها را رمزگذاری کنید. به این ترتیب، حتی اگر کسی به سیستم ذخیره سازی دسترسی پیدا می کند، بدون کلید رمزگذاری نمی توانند از کلیدها استفاده کنند.
بیایید نگاهی به نحوه پیادهسازی دو راهحل اول، پایینترین سربار این راهحلها، در کدنویسی امن بیندازیم. من از Python به عنوان زبان مثال برای این کار استفاده کرده ام، اگرچه هر زبانی مفاهیم مشابهی خواهد داشت. مزیت پایتون سادگی و سهولت استفاده آن است که همراه با قابلیت های فوق العاده مدیریت داده، آن را برای اکثر کاربردها ایده آل می کند.
برای استفاده از متغیرهای محیطی برای ذخیره کلیدهای API
متغیرهای محیطی به شما امکان می دهند اطلاعات حساس مانند کلیدهای API را خارج از کد منبع خود ذخیره کنید. آنها در طول زمان اجرا برای برنامه قابل دسترسی هستند و می توانند به راحتی در محیط های مختلف (مثلاً توسعه، مرحله بندی و تولید) پیکربندی شوند.
ابتدا متغیر محیطی را در سیستم خود یا پلتفرمی که برنامه شما در آن اجرا می شود تنظیم کنید. در یک سیستم مبتنی بر یونیکس، می توانید یک متغیر محیطی را با استفاده از آن تنظیم کنید صادرات فرمان:
% صادرات API_KEY=
سپس به متغیر محیطی در کد برنامه خود دسترسی پیدا کنید. به عنوان مثال، در پایتون، می توانید با استفاده از متغیر به مقدار متغیر محیطی دسترسی پیدا کنید os مدول:
% واردات پایتون os api_key = os.environ['API_KEY']
برای استفاده از فایل های پیکربندی خارجی برای ذخیره کلیدهای API
راه دیگر برای توسعه دهندگان تازه کار یا دانشمند داده برای ذخیره کلیدهای API از طریق فایل های پیکربندی خارجی است. اینها می توانند بسیار مفید باشند. با این حال، شما باید آنها را با استفاده از مخزن حذف کنید .گیتیگنور یا معادل آن
ابتدا یک فایل پیکربندی مانند config.jsonو کلید API را در آن ذخیره کنید:
json { "api_key": " "}
سپس فایل پیکربندی را به پروژه خود اضافه کنید .گیتیگنور (یا معادل آن) برای اطمینان از اینکه سیستم کنترل نسخه شما آن را ردیابی نمی کند.
در نهایت، فایل پیکربندی را در کد برنامه خود بارگذاری کنید تا به کلید API دسترسی پیدا کنید. به عنوان مثال، در پایتون، می توانید یک فایل پیکربندی JSON را بارگذاری کنید و به کلید API مانند این دسترسی داشته باشید:
json را با open('config.json') به صورت f وارد کنید
config = load(f) api_key = config['api_key']
API های خود را قفل کنید
با استفاده از متغیرهای محیطی یا فایل های پیکربندی خارجی، می توانید بهتر شوید از کلیدهای API خود در برابر قرار گرفتن در معرض تصادفی محافظت کنید، مدیریت اطلاعات حساس را ساده می کند و حفظ پیکربندی های مختلف برای محیط های مختلف را آسان تر می کند. برای جلوگیری از دسترسی غیرمجاز، باید کنترلهای دسترسی مناسب را بر روی متغیرهای محیط و فایلهای پیکربندی اعمال کنید.
با افزایش پیچیدگی (و اهمیت) پروژه شما، ممکن است توصیه شود که به پلتفرم هایی با قابلیت ذاتی مانند سیستم های مدیریت اسرار یا سرویس های پیکربندی محیطی خاص برای ذخیره اقلام حساس بروید. با این حال، این راهحلهای سریع به شما کمک میکنند تا با امنیت بیشتری شروع کنید.
- محتوای مبتنی بر SEO و توزیع روابط عمومی. امروز تقویت شوید.
- EVM Finance. رابط یکپارچه برای امور مالی غیرمتمرکز دسترسی به اینجا.
- گروه رسانه ای کوانتومی. IR/PR تقویت شده دسترسی به اینجا.
- PlatoAiStream. Web3 Data Intelligence دانش تقویت شده دسترسی به اینجا.
- منبع: https://www.darkreading.com/edge/how-do-i-protect-my-api-keys-from-appearing-in-github-search-results-
- : دارد
- :است
- :نه
- :جایی که
- $UP
- a
- قادر
- سو استفاده کردن
- دسترسی
- در دسترس
- اضافه کردن
- اضافه
- مزیت - فایده - سود - منفعت
- اجازه دادن
- همچنین
- هر چند
- an
- و
- هر
- هر کس
- API
- کاربرد
- برنامه های کاربردی
- مناسب
- هستند
- AS
- At
- AWS
- BE
- شود
- تبدیل شدن به
- شروع
- بودن
- بهتر
- شکاف
- by
- CAN
- قابلیت های
- رمز
- برنامه نویسی
- مرتکب شده
- پیچیدگی
- مفاهیم
- پیکر بندی
- پیکربندی
- در نظر بگیرید
- کنترل
- گروه شاهد
- ایجاد
- داده ها
- دانشمند داده
- پایگاه داده
- توسعه دهنده
- پروژه
- مختلف
- مستقیما
- do
- دو
- در طی
- e
- سهولت
- راحتی در استفاده
- آسان تر
- به آسانی
- هر دو
- دیگر
- رمزگذاری
- اعمال
- اطمینان حاصل شود
- محیط
- محیط
- معادل
- و غیره
- اتر (ETH)
- حتی
- تا کنون
- مثال
- صادرات
- خارجی
- امکانات
- پرونده
- فایل ها
- نام خانوادگی
- برای
- نیرومند
- از جانب
- عموما
- GitHub
- گوگل
- رشد می کند
- اداره
- آیا
- کمک
- چگونه
- چگونه
- اما
- HTTPS
- i
- دلخواه
- if
- انجام
- واردات
- اهمیت
- in
- مشمول
- اطلاعات
- ذاتی
- IT
- اقلام
- ITS
- JPG
- json
- نگاه داشتن
- نگهداری
- کلید
- کلید
- زبان
- بزرگتر
- برجسته
- پسندیدن
- بار
- محلی
- نگاه کنيد
- دستگاه
- حفظ
- ساخت
- مدیریت
- مدیریت
- مدیر
- ممکن است..
- به معنی
- روش
- قدرت
- واحد
- بیش
- اکثر
- حرکت
- my
- نیاز
- of
- خاموش
- on
- or
- OS
- دیگر
- خارج
- خارج از
- بخش
- مجوز
- سکو
- سیستم عامل
- افلاطون
- هوش داده افلاطون
- PlatoData
- پتانسیل
- بالقوه
- جلوگیری از
- تولید
- پروژه
- مناسب
- محافظت از
- عمومی
- پــایتــون
- سریع
- خواندن
- توصیه می شود
- مخزن
- نتایج
- خطرات
- در حال اجرا
- s
- دانشمند
- جستجو
- راز
- امن
- ایمن
- تیم امنیت لاتاری
- خطرات امنیتی
- می بیند
- حساس
- جداگانه
- خدمات
- تنظیم
- محیط
- چند
- به اشتراک گذاشته شده
- باید
- مشابه
- سادگی
- ساده کردن
- مزایا
- کسی
- منبع
- کد منبع
- تخصصی
- خاص
- استقرار
- شروع
- ذخیره سازی
- opbevare
- چنین
- سیستم
- سیستم های
- گرفتن
- که
- La
- آنها
- سپس
- اینها
- آنها
- این
- به
- با هم
- ابزار
- دو
- استفاده کنید
- استفاده
- استفاده
- با استفاده از
- ارزش
- مختلف
- طاق
- Ve
- نسخه
- کنترل نسخه
- بسیار
- از طريق
- مسیر..
- راه
- که
- WHO
- اراده
- با
- بدون
- برنده شد
- خواهد بود
- شما
- شما
- زفیرنت