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
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.
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://msdn.microsoft.com/en-us/library/windows/desktop/84aed186-1d75-4366-8e61-8d258746bopq.aspx
Questo è un sacco di materiale. Cosa controlla effettivamente l'opzione sul mio codice? –
- 1. Ciclo di vita dello sviluppo per Apache NiFi
- 2. JManuale del ciclo di vita
- 3. Sviluppo del codice MATLAB in Visual Studio
- 4. ciclo di vita della pagina in javascript
- 5. Eventi del ciclo di vita della pagina in xamarin.forms
- 6. A che punto del ciclo di vita del controllo Control.Visible interrompe il rendering?
- 7. angularjs 1.x ciclo di vita del supporto
- 8. React animazioni del ciclo di vita
- 9. spiegazione del ciclo di vita della pagina ASP.NET
- 10. Android View Ciclo di vita
- 11. Sviluppo di SharePoint in Visual Studio 2010
- 12. Sviluppo di Silverlight in Visual Studio Express?
- 13. Async/Await in WebForms - In che modo viene eseguita la continuazione prima del termine del ciclo di vita della pagina?
- 14. SVN senza server per lo sviluppo di Visual Studio
- 15. Qual è il miglior prodotto di controllo del codice sorgente per lo sviluppo di Visual Studio?
- 16. problemi designer.cs con l'utilizzo del controllo utente in Visual Studio
- 17. Ciclo di vita dell'oggetto in java e gestione della memoria?
- 18. Modelli di ciclo di vita del software per lo sviluppo web
- 19. Ciclo di vita della pagina rasoio in ASP.NET MVC
- 20. test ngOnChanges gancio del ciclo di vita in angolare 2
- 21. Sviluppo di XNA all'esterno di Visual Studio
- 22. ViewBag/ViewData Ciclo di vita
- 23. Visual Studio mostra "Aggiornamento dello stato del controllo origine" dopo l'installazione di ASP.NET MVC 4 Beta
- 24. Il ciclo di vita del servizio WCF ospitato in IIS
- 25. Metodi del ciclo di vita per i servizi in angular2
- 26. Quali eventi del ciclo di vita ASP.NET possono essere asincroni?
- 27. Ciclo di vita Android SharedPreference
- 28. Ciclo di vita dell'oggetto in NHibernate
- 29. Java - Ciclo di vita della classe interna anonima
- 30. Html + css + sviluppo javascript con Visual Studio
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. –
@ 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
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ò. –