Integrità del sito Web implementato

0

Ieri, l'implementazione di un sito Web finanziario su un client è stata sostituita con una versione precedente che ha creato problemi imprevisti e tempi di inattività di quasi 12 ore.

Siamo venuti a sapere che due ragazzi del loro reparto IT stanno creando problemi l'uno con l'altro ed è stato fatto da uno di loro, non voglio entrare nei dettagli.

Questo potrebbe portare a discrepanze e perdite finanziarie, ma fortunatamente no.

I ragazzi IT hanno tutti i diritti sul server, quindi non possono essere controllati a livello di macchina / OS.

Quindi, c'è qualche possibilità / opzione disponibile all'interno di ASP.NET per proteggere o garantire l'integrità della distribuzione?

Ad esempio, cosa succede se la versione / hashcode degli assiemi potrebbe essere verificata sul database?

    
posta bjan 03.05.2017 - 13:27
fonte

2 risposte

1

Dovresti aggiungere una pagina di controllo dello stato o una API al tuo sito web e utilizzare la distribuzione verde / blu per prevenire questo tipo di problema.

La pagina di controllo sanitario, dovrebbe restituire la versione del sito web. Idealmente, il controllo delle versioni viene eseguito automaticamente sul build o sul server di distribuzione e non può essere modificato manualmente.

Distribuire prima sul set offline di server ed eseguire i test di integrazione / fumo contro di essi, incluso il controllo della versione restituita dalla pagina Web di controllo dello stato.

Solo se questi test passano, devi quindi cambiare questi server in live e rimuovere la vecchia versione offline.

Idealmente il tuo obiettivo è ridurre la componente umana della distribuzione facendo clic su un singolo pulsante. Automatizzare tutti i test e le procedure di rollback.

    
risposta data 03.05.2017 - 14:07
fonte
0

La soluzione è di non permettere agli sviluppatori di avere accesso in scrittura ai server di produzione su base permanente. Se è necessario l'accesso perché hanno funzioni al di fuori di quanto è normale per uno sviluppatore, fornire loro un account separato per l'amministrazione del server. Un requisito di revisione abbastanza comune, in particolare per i sistemi finanziari, consiste nell'avere una separazione dei compiti che impedisce agli sviluppatori che hanno scritto il codice di essere le stesse persone che possono implementare il codice. Sono disponibili numerosi strumenti di automazione della distribuzione che possono aiutare a gestirlo, se si utilizza TFS per il controllo del codice sorgente e le build sono disponibili la gestione del rilascio oppure è possibile integrare un numero di gestori di distribuzione open source nel processo di generazione.

la creazione di una soluzione che limiti le versioni consentite è un segnale di enormi problemi di sfiducia con i tuoi amministratori che forniranno un aiuto minimo per evitare cose brutte. Un cattivo attore come amministratore può ancora causare il caos meteorologico così qualcosa del genere o meno. Ciò impedirebbe modifiche accidentali, ma una soluzione migliore è quella di gestire i permessi in modo tale che la distribuzione accidentale alla produzione non sia uno scenario realistico. Nei periodi in cui tutto funziona come previsto e le nuove versioni vengono spinte in base al piano, un tale sistema aggiunge ulteriore sovraccarico e, se l'aggiornamento delle versioni consentite viene automatizzato per far parte del processo di distribuzione, diventa totalmente inutile.

Devi fidarti delle persone a cui sono concessi i diritti di amministrazione per non comportarsi male, perché non c'è molto che puoi fare per impedire ai veri amministratori di fare le cose, se lo desiderano. Crea anche un ambiente di lavoro scarso quando la sfiducia è l'impostazione predefinita. Inoltre, devi controllare correttamente chi ha accesso come amministratore e assicurarti che sia appropriato limitato a coloro che ne hanno effettivamente bisogno.

    
risposta data 03.05.2017 - 14:09
fonte

Leggi altre domande sui tag