Posts

Showing posts from March, 2010

Visual Studio 2010 コード分析新機能 (2) 新ルール

Visual Studio 2010 のコード分析には、次のルールが新たに追加されるそうだ。従来のコードアクセスセキュリティがデフォルト off になり、セキュリティ透過性モデルレベル 2 が導入されたので、セキュリティ関係のルールがかなりたくさん追加されている。CA1062public メソッドに渡された引数の null チェックを行うCA1303ローカライズ可能にすべき引数には文字列リテラルを指定しないCA2000Dispose 可能なオブジェクトはスコープを失う前に破棄するCA2100セキュリティ上の脆弱性の観点から SQL クエリを再確認するCA2130定数に SecurityCritical 属性を付加しないCA2131型の同値 (type equivalence) に参加する型や、そのメンバーに SecurityCritical 属性を付加しないCA2132デフォルトコンストラクタには、少なくとも基底クラスのデフォルトコンストラクタと同じセキュリティ透過属性を付加するCA2133デリゲートとバインド対象のメソッドのセキュリティ透過レベル (という言い方でいいのだろうか...) を一致させるCA2134オーバーライドメソッドのセキュリティ透過レベルは、基底クラスのものと一致させるCA2135セキュリティ透過レベル 2 のアセンブリにはリンク確認要求を含めないCA2136従来のコードアクセスセキュリティモデルとセキュリティ透過モデルとで、矛盾した属性をメンバーに付加しないCA2137セキュリティ透過なメソッドには検証可能な IL だけを含めるCA2138セキュリティ透過なメソッドから SuppressUnmanagedCodeSecurity 属性が付加されたメソッドを呼び出さないCA2139セキュリティ透過なメソッドに HandleProcessCorruptingExceptions 属性を付加しないCA2140セキュリティ透過なコードからセキュリティクリティカルな型やメソッドなどを使わないCA2141セキュリティ等価なメソッドから、リンク確認要求で保護されたメンバーを使用しない (直訳すると「セキュリティ等価なメソッドではリンク確認要求を満たさない」になるが、MSDN の説明を読む限り、この訳の方が適している気がする)CA2142セキュリティ透過なコ…

Visual Studio 2010 コード分析新機能 (1) ルールセット

Visual Studio 2010 では、ルールセットというものが追加される。これは、「このルールは有効、このルールは無効...」という設定をひとまとめにしたもの。以下のような定義済みルールセットの他、独自実装も可能らしい。Microsoft All Rules : 全ルールを含む Microsoft Basic Correctness Rules : ロジックの間違いや .NET Framework の API の使い方の間違いに関するルールを含む Microsoft Basic Design Guideline Rules : コードの理解や使い方を容易にするためのベストプラクティスを強制するためのルールを含む Microsoft Extended Correctness Rules : Microsoft Basic Correctness Rules の拡張 + COM 相互運用やモビリティに関するルールを含む Microsoft Extended Design Guideline Rules : Microsoft Basic Design Guideline Rules の拡張 + ネーミングルールを含む Microsoft Globalization Rules : グローバリゼーション関係の前ルールを含む Microsoft Minimum Recommended Rules : セキュリテ上の脆弱性やアプリケーションのクラッシュなどにつながる可能性がある、もっともクリティカルな問題を検出するためのルールを含む Microsoft Security Rules : セキュリティ関係の全ルールを含む Visual Studio 2010 にはルールセットをいじくるための、ルールセットエディタというのもくっついている (独立したアプリではなく Visual Studio 2010 の機能の一部)。Configuring and Using a Custom Rule Set全プロジェクトで同じルールセットを使うようにもできる模様。Specify Managed Code Rule Sets for Multiple Projects in a Solution