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