web-dev-qa-db-fra.com

Qu'est-ce que l'option Security Development Lifecycle Checks dans Visual Studio?

J'utilise Visual Studio 2013 Preview, bien que je suis sûr de l'avoir vu dans les versions antérieures. Lors de la création d'un nouveau projet à l'aide de l'assistant, je sélectionne C++, Application console Win32, et il existe une option pour activer les vérifications du cycle de vie du développement de la sécurité sur mon projet. Quelqu'un pourrait-il expliquer exactement ce que cette option fait à mon code/projet?

77
Neil Kirk

Le commutateur /sdl Est décrit ici . Il transforme certains avertissements en erreurs, ce qui n'affecte pas votre code. De plus, il applique la vérification /GS De manière plus agressive.

N'en attendez pas trop. Le Microsoft SDL est vraiment une solution de contournement pour la programmation de style C des années 1980. Même si vous utilisez le C++ du 20e siècle, vous n'en avez pas besoin. Par exemple. operator+(std::string, std::string) est à la fois sûr et portable. En revanche, la solution SDL de Microsoft n'est pas portable ni sécurisée - l'idée derrière /GS Est de trouver des erreurs dans la gestion des chaînes C au moment de l'exécution et d'interrompre le programme, en limitant les conséquences mais sans le rendre sûr.

70
MSalters

Le cycle de vie du développement de la sécurité Microsoft est un processus de développement logiciel utilisé et proposé par Microsoft pour réduire les coûts de maintenance des logiciels et augmenter la fiabilité des logiciels concernant les bogues liés à la sécurité des logiciels.

Ces informations peuvent être utiles:

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

2
Mohammad Izady