■ ビュー
1) Html.Raw()の使用
以下のケースに限る。 * 文字列がエンコード済みである * 安全な文字列であることが予めわかっている => ユーザからの入力値、データベースなどから取得した値は、 クロス・サイト・スクリプティング対策として、@Xxxx で出力する事* 「クロス・サイト・スクリプティング」は以下の関連記事を参照のこと
http://blogs.yahoo.co.jp/dk521123/35715410.html
■ コントローラ
1) アクションとして使用しないPublicメソッドについて
* アクションとして使用しないPublicメソッドがある場合、NonAction属性を付与すること => そもそもPublicメソッドが必要かも検討した方がいい
2) 入力フォーム画面におけるコントローラ
* 入力フォームには、ValidateAntilForgeryToken属性で クロス・サイト・リクエスト・フォージェリ対策を行う* 「クロス・サイト・リクエスト・フォージェリ」は以下の関連記事を参照のこと
http://blogs.yahoo.co.jp/dk521123/35715431.html
3) Fileメソッドの引数について
http://blogs.yahoo.co.jp/dk521123/35727734.htmlで使用している Fileメソッドの引数「パス」は、パス トラバーサル対策として ユーザ指定させない(ファイル名も)* 「パス トラバーサル」は以下の関連記事を参照のこと
http://blogs.yahoo.co.jp/dk521123/35715502.html
4) HandleError属性について
* HandleError属性で、カスタム・エラー・ページを有効にする
■ データベース関連
1) データベースへのアクセス
* データベースへのアクセスは、SQLインジェクション対策として、 LINQ to Entitiesをなるべく利用する* 「SQLインジェクション」は以下の関連記事を参照のこと
http://blogs.yahoo.co.jp/dk521123/35715532.html
2) データ削除
* データ削除は、HTTP GET経由ではなく、HTTP POST経由で行う
■ その他
1) クッキーについて
* HttpOnlyプロパティを有効にする * SSL通信環境下では、Secureプロパティを有効にする
2) ファイルアップロード
* ファイルアップロードする場合、ファイルの種類やファイルサイズをチェックすること
3) サイトのフォルダ構成について
* エンドユーザーがアクセスする必要のないログファイル、設定ファイルなどは、 App_Dataフォルダに配置すること