2013-08-18 8 views
71

Visual Studio 2013 Previewを使用していますが、これまでのバージョンでは見たことがあります。ウィザードを使用して新しいプロジェクトを作成するときには、C++、Win32コンソールアプリケーションを選択し、プロジェクトでセキュリティ開発ライフサイクルチェックを有効にするオプションがあります。誰かがこのオプションが自分のコード/プロジェクトに対して何をしているのか正確に説明できますか?Visual Studioのセキュリティ開発ライフサイクルチェックとは何ですか?

答えて

67

/sdlスイッチがhere記載されています。いくつかの警告がエラーに変わり、コードには影響しません。さらに、/GSのチェックをより積極的に行います。

あまり期待しないでください。 Microsoft SDLは、実際には1980年代のスタイルCプログラミングの回避策です。 20世紀のC++を使っていても、それは必要ありません。例えば。 operator+(std::string, std::string)は安全で持ち運び可能です。 /GSの背後にあるアイディアは、実行時にCの文字列処理でエラーを見つけて、プログラムを中止し、結果を制限しても安全にしないというものです。

+0

文字列はメモリエラーの唯一の原因ではありません。/sdlは、とりわけ、ユニット化された変数の使用を識別するのに役立ちます。 –

+0

@JørgenFogh:あなたは/ sdlを必要としないC4700警告について説明しています。これはレベル1の警告です。 C4700が消える前に**すべての**警告をオフにする必要があります。開発者がそれをやっているなら、SDLが解決しない問題もあります。 – MSalters

+0

/sdlはより詳細な静的解析を行うため、警告がより詳細になることをどこかで読んでいます。私はどこでそれを読むのか覚えていない。 –

2

マイクロソフトセキュリティ開発ライフサイクルは、マイクロソフトがソフトウェア保守コストを削減し、ソフトウェアセキュリティ関連のバグに関するソフトウェアの信頼性を高めるために使用および提案するソフトウェア開発プロセスです。

これらは有用かもしれない:

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

これは非常に重要です。オプションのチェックは実際に私のコードに何をしていますか? –

関連する問題