2013-08-18 15 views
71

Sto usando Visual Studio 2013 Preview, anche se sono sicuro di averlo visto nelle versioni precedenti. Quando creo un nuovo progetto usando la procedura guidata, seleziono C++, l'applicazione console Win32 e c'è un'opzione per abilitare i controlli del ciclo di vita dello sviluppo della sicurezza sul mio progetto. Qualcuno potrebbe spiegare esattamente cosa questa opzione fa al mio codice/progetto?Che cos'è l'opzione Controllo dello sviluppo del ciclo di vita della sicurezza in Visual Studio?

risposta

67

L'interruttore /sdl è descritto here. Trasforma alcuni avvertimenti in errori, che non influenzano il tuo codice. Inoltre, applica il controllo /GS in modo più aggressivo.

Non aspettarti troppo da esso. Microsoft SDL è davvero una soluzione alternativa per la programmazione in stile C degli anni '80. Anche se usi il 20 ° secolo C++, non ne hai bisogno. Per esempio. operator+(std::string, std::string) è sicuro e portatile. La soluzione SDL di Microsoft qui al contrario non è portatile, né sicura: l'idea alla base dello /GS consiste nel trovare errori con la gestione della stringa C in fase di esecuzione e interrompere il programma, limitando le conseguenze ma non rendendolo sicuro.

+0

Le stringhe non sono l'unica causa di errori di memoria./sdl può aiutarti a identificare l'uso di variabili unitializzate, tra le altre cose. –

+0

@ JørgenFogh: stai descrivendo l'avviso C4700, per il quale non hai bisogno di/sdl. È un avvertimento di Livello 1; è necessario disattivare ** tutti ** gli avvisi prima che scompaia C4700. Se i tuoi sviluppatori lo stanno facendo, hai dei problemi che SDL non risolverà neanche. – MSalters

+0

Ricordo di aver letto da qualche parte che gli avvertimenti diventano più dettagliati, perché/sdl attiva un'analisi statica più dettagliata. Non riesco a ricordare dove lo leggo però. –

2

Il Microsoft Security Development Lifecycle è un processo di sviluppo software utilizzato e proposto da Microsoft per ridurre i costi di manutenzione del software e aumentare l'affidabilità dei software relativi ai bug relativi alla sicurezza del software.

Questi maggio utili:

http://download.microsoft.com/download/B/5/A/B5A89F4C-D591-4AAB-BF45-D818D80527B6/SDLServices2011.pdf

http://msdn.microsoft.com/en-us/library/windows/desktop/84aed186-1d75-4366-8e61-8d258746bopq.aspx

+7

Questo è un sacco di materiale. Cosa controlla effettivamente l'opzione sul mio codice? –

Problemi correlati