من یک روند برای استقرار برنامه های وب را برای PaaS می بینم که تنظیمات معمولا در متغیرهای محیطی تعریف شده است. به عنوان مثال، توابع Azure یا .net هسته apis
فرض بر این است که برای پیروی از عمل خوب انجام شده است تا اطمینان حاصل شود که اسرار در کنترل کد / منبع پایان نمی یابد. و آن را توسط یک سیستم مدیریت انتشار به عمل می آید تا اسرار مختلف در هر محيطی به نام dev، staging، prod وجود داشته باشد. یا شاید در keyvult (در مورد Azure) ذخیره شده و پس از آن برنامه اجازه می دهد تا راز در زمان اجرا در اولین بار به دست آورد یعنی برنامهنویس نیت خوبی دارد.
استدلال همه خوب و خوب است، اما اسرار هنوز در ابتدای متغیر محیطی به راحتی قابل دسترسی است.
در روزهای کاملا رایگان asp.net، ما رشته های اتصال web.config را با استفاده از کلید ماشین رمزگذاری می کنیم، بنابراین حداقل فایل فیزیکی یک تهدید.
آیا متغیرهای محیطی فرض می کنند که مهاجم نمی تواند کد را در زمان اجرا اجرا کند؟
یا آیا پیشنهادات چارچوب / پاسS به طور معمول دارای اشکال دیگری از حفاظت در برابر متغیرهای محیطی هستند؟ من یک خاطره مبهم و یا شاید Heroku ارائه اقدامات امنیتی اضافی.
من فکر می کنم برای هر حساسیت، آن را باید در keyvault (یا مشابه) به راحتی چرخش، حسابرسی ورود به سیستم، با استفاده از دفاع در اقدامات احتیاط عمیق و غیره، و غیره، تعجب انداختن روند متغیرهای زیست محیطی بوی امنیتی بد است یا چارچوب هایی که این را ارتقاء می دهند، حفاظت کافی را برای اسرار خفیف 🙂 ارائه می دهند؟