چگونه از نمایش کلیدهای API خود در نتایج جستجو محافظت کنم؟

چگونه از نمایش کلیدهای API خود در نتایج جستجو محافظت کنم؟

گره منبع: 2726143

سوال: چگونه می توانم کلیدهای 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 خود در برابر قرار گرفتن در معرض تصادفی محافظت کنید، مدیریت اطلاعات حساس را ساده می کند و حفظ پیکربندی های مختلف برای محیط های مختلف را آسان تر می کند. برای جلوگیری از دسترسی غیرمجاز، باید کنترل‌های دسترسی مناسب را بر روی متغیرهای محیط و فایل‌های پیکربندی اعمال کنید.

با افزایش پیچیدگی (و اهمیت) پروژه شما، ممکن است توصیه شود که به پلتفرم هایی با قابلیت ذاتی مانند سیستم های مدیریت اسرار یا سرویس های پیکربندی محیطی خاص برای ذخیره اقلام حساس بروید. با این حال، این راه‌حل‌های سریع به شما کمک می‌کنند تا با امنیت بیشتری شروع کنید.

تمبر زمان:

بیشتر از تاریک خواندن