Vedo una tendenza per la distribuzione di app Web in PaaS che la configurazione è in genere definita in variabili ambientali. per esempio. Funzioni di Azure o .net apis core
Supponendo che questo sia stato fatto per seguire le buone pratiche per garantire che i segreti non finiscano nel controllo del codice / sorgente. E che è gestito da un sistema di gestione del rilascio in modo che ci siano diversi segreti per l'ambiente, ad esempio dev, staging, prod. O forse memorizzato in un keyvault (nel caso di Azure) e quindi l'applicazione ha il permesso di ottenere il segreto in fase di esecuzione al primo caricamento .... vale a dire che lo sviluppatore ha buone intenzioni.
Il ragionamento è tutto a posto, ma i segreti finiscono comunque in una variabile ambientale facilmente accessibile.
Nei vecchi tempi (circa un anno fa!) di asp.net completamente sviluppato, abbiamo crittografato le stringhe di connessione di web.config usando una chiave macchina, quindi almeno il file fisico non rappresentava un minaccia.
Le variabili ambientali presumono che un utente malintenzionato non possa eseguire codice in fase di runtime?
O le strutture / le offerte PasS in genere hanno altre forme di protezione rispetto alle variabili ambientali? Ho un vago ricordo o forse Heroku che fornisce ulteriori misure di sicurezza.
Suppongo che per qualsiasi cosa sensibile, dovrebbe essere memorizzato in un keyvault (o simile) facilmente ruotato, controllato loggato, utilizzando misure di difesa in profondità ecc ecc, ma mi chiedo se la tendenza delle variabili ambientali sia un cattivo odore di sicurezza o i quadri che promuovono questo forniscono una protezione adeguata per un po ':-) segreti segreti?