development guideline/ASP.NET/Security
をテンプレートにして作成
Search in
this wiki
and
or
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
#ls2()
#contents
#br
* 基本方針 [#q8e89ab9]
** 入出力を厳密に検証する [#q7219065]
- ユーザーに対して自由な値を入力を許可する場合、値受け取...
- 妥当な入力値以外は、入力値検証時に全て除外する。
- 以降の処理は、妥当な値が入力されていること前提に実装し...
** 問題発生時には、処理継続させない。機能停止させる [#hb9...
- 例えば「システムエラーを避けるためだけに例外出力コード...
** 最小特権 [#icf443fa]
- 必要最小限の操作だけを行えるように、システム権限を設定...
** 権限分割 [#h8e445ad]
- 利用者の権限を細かく分割する。(主にDB、OS等インフラ)
* 認証 [#e05fd47e]
** HTTPSの不備 [#e6be7433]
- 個人情報取り扱いページは、HTTPS通信とし、HTTP通信を許可...
-- 画像ファイル等であっても、個人情報となり得るものは全て...
- Cookieに認証情報を格納する場合には、必ずsecure 属性を付...
** 認証設定の不備 [#vced0f61]
- 規則性があり推測しやすい利用者ID、パスワードを自動生成...
- 利用者ID、パスワードを入力する画面(ログイン画面)で、H...
- ログインが必要な全てのコンテンツについて、描画処理前に...
- 認証エラーで登録情報を暴露しない。ID不在、パスワード誤...
- クレジットカード番号等の秘密度が高いものは、SSL 経由で...
** ブルートフォース攻撃 [#y437893c]
- ログイン、ファイル名指定機能、セッションID等について、...
- セッションIDや、Kerberosチケット等の一時認証キーは、有...
** パスワードリマインダ [#zfd56973]
- できるだけ、質問内容はユーザーの自由登録とし、選択式に...
- 利用時には、3つ以上の登録情報を要求する。うち、ログイン...
* 承認 [#yf8dee98]
** セッション管理 [#w83655e9]
- セッションIDを推測が困難なものにする。
- できるだけ、セッションIDをURLパラメータに格納しないよう...
- ログイン成功後に、新しくセッションを開始するようにする。
-- 上記が実現できない場合は、セッションIDとは別に秘密情報...
- セッションIDをCookieにセットする場合、有効期限の設定に...
- 状態はできるだけサーバー側に持たせる。(=Cookieを使わな...
-- ブラウザ側にはセッションIDのみを渡す。Cookie等にデータ...
- Webサイト閲覧時に自動ログインする場合など、どうしてもCo...
** セッション終了処理 [#a934013f]
- ログアウト(ボタン)を設置する。
- タイムアウト時間を設定する。(通常1時間以内)
* 情報取得 [#i75adb5d]
** システムのバージョンに関する情報 [#j9002fa3]
- システムのバージョン情報は秘匿する。(ASPのエラー画面、...
** サーチエンジンによって公開される情報 [#r38784b7]
- サーバー上に不要なコンテンツを置かない。(例え、ハイパ...
** 強制ブラウジング [#ve29dc17]
- ディレクトリインデックスを公開しない。
** ディレクトリ・トラバーサル [#pc5d7930]
- パラメータで、サーバー内のファイルを指定できる実装を避...
-- 上記が実現できない場合は、Webアプリが参照できるフォル...
** HTMLソースコメント [#of801f72]
- HTMLソースに不要なコメントを記述しない。
- 開発用のコメントはHTMLコメントで記述しない。Aspxファイ...
* コマンド実行 [#h8e35dcc]
** OSコマンド・インジェクション [#f88b4759]
- シェルを起動する実装を避ける。
** SQLコマンド・インジェクション [#bcbf6a8a]
- SQL文の生成にバインド機構を使用する。
-- 上記が実現できない場合は、全ての変数にエスケープ処理が...
- SQLエラーメッセージをブラウザにそのまま表示しない
** バッファオーバーフロー [#abdf0964]
- ループの終了条件でバッファ境界をチェックする。
- 書き込み先バッファサイズを指定する。
- 上限サイズのバッファを用意する。
- 与えるデータサイズを制限する。
- バッファオーバーフロー対策ツールを利用する。
* クライアントサイドアタック [#y2d25dd9]
** クロスサイト・スクリプティング [#kb97b3f2]
- Webページに出力する全ての要素に対して、エスケープ処理(...
- エスケープ処理は、ASP.NETのコントロール群に任せ、基本的...
- スタイルシートを外部サイトから取り込めるようにしない
* ロジカルアタック [#pe807465]
** クロスサイト・リクエスト・フォージェリ(CSRF) [#k4c87194]
- 全ページのPOSTパラメータに秘密情報を挿入し、サーバで記...
** プロセスフロー管理の不備 [#d800b7d9]
- 不正な画面遷移を防ぐために、TransactionTokenを利用する...
- 重要なデータ処理の直前はPOST動作にする。GETを使わない。
* その他 [#hbd3c7a3]
** HTTPヘッダ・インジェクション [#m98c893b]
- 外部から渡されるパラメータを、直接HTTPヘッダ情報として...
-- 上記が実現できない場合は、レスポンスヘッダ記述用APIを...
** バックドアとデバッグオプション [#hf80b9f3]
- 実装用、または試験用にバックドアやデバッグオプションが...
終了行:
#ls2()
#contents
#br
* 基本方針 [#q8e89ab9]
** 入出力を厳密に検証する [#q7219065]
- ユーザーに対して自由な値を入力を許可する場合、値受け取...
- 妥当な入力値以外は、入力値検証時に全て除外する。
- 以降の処理は、妥当な値が入力されていること前提に実装し...
** 問題発生時には、処理継続させない。機能停止させる [#hb9...
- 例えば「システムエラーを避けるためだけに例外出力コード...
** 最小特権 [#icf443fa]
- 必要最小限の操作だけを行えるように、システム権限を設定...
** 権限分割 [#h8e445ad]
- 利用者の権限を細かく分割する。(主にDB、OS等インフラ)
* 認証 [#e05fd47e]
** HTTPSの不備 [#e6be7433]
- 個人情報取り扱いページは、HTTPS通信とし、HTTP通信を許可...
-- 画像ファイル等であっても、個人情報となり得るものは全て...
- Cookieに認証情報を格納する場合には、必ずsecure 属性を付...
** 認証設定の不備 [#vced0f61]
- 規則性があり推測しやすい利用者ID、パスワードを自動生成...
- 利用者ID、パスワードを入力する画面(ログイン画面)で、H...
- ログインが必要な全てのコンテンツについて、描画処理前に...
- 認証エラーで登録情報を暴露しない。ID不在、パスワード誤...
- クレジットカード番号等の秘密度が高いものは、SSL 経由で...
** ブルートフォース攻撃 [#y437893c]
- ログイン、ファイル名指定機能、セッションID等について、...
- セッションIDや、Kerberosチケット等の一時認証キーは、有...
** パスワードリマインダ [#zfd56973]
- できるだけ、質問内容はユーザーの自由登録とし、選択式に...
- 利用時には、3つ以上の登録情報を要求する。うち、ログイン...
* 承認 [#yf8dee98]
** セッション管理 [#w83655e9]
- セッションIDを推測が困難なものにする。
- できるだけ、セッションIDをURLパラメータに格納しないよう...
- ログイン成功後に、新しくセッションを開始するようにする。
-- 上記が実現できない場合は、セッションIDとは別に秘密情報...
- セッションIDをCookieにセットする場合、有効期限の設定に...
- 状態はできるだけサーバー側に持たせる。(=Cookieを使わな...
-- ブラウザ側にはセッションIDのみを渡す。Cookie等にデータ...
- Webサイト閲覧時に自動ログインする場合など、どうしてもCo...
** セッション終了処理 [#a934013f]
- ログアウト(ボタン)を設置する。
- タイムアウト時間を設定する。(通常1時間以内)
* 情報取得 [#i75adb5d]
** システムのバージョンに関する情報 [#j9002fa3]
- システムのバージョン情報は秘匿する。(ASPのエラー画面、...
** サーチエンジンによって公開される情報 [#r38784b7]
- サーバー上に不要なコンテンツを置かない。(例え、ハイパ...
** 強制ブラウジング [#ve29dc17]
- ディレクトリインデックスを公開しない。
** ディレクトリ・トラバーサル [#pc5d7930]
- パラメータで、サーバー内のファイルを指定できる実装を避...
-- 上記が実現できない場合は、Webアプリが参照できるフォル...
** HTMLソースコメント [#of801f72]
- HTMLソースに不要なコメントを記述しない。
- 開発用のコメントはHTMLコメントで記述しない。Aspxファイ...
* コマンド実行 [#h8e35dcc]
** OSコマンド・インジェクション [#f88b4759]
- シェルを起動する実装を避ける。
** SQLコマンド・インジェクション [#bcbf6a8a]
- SQL文の生成にバインド機構を使用する。
-- 上記が実現できない場合は、全ての変数にエスケープ処理が...
- SQLエラーメッセージをブラウザにそのまま表示しない
** バッファオーバーフロー [#abdf0964]
- ループの終了条件でバッファ境界をチェックする。
- 書き込み先バッファサイズを指定する。
- 上限サイズのバッファを用意する。
- 与えるデータサイズを制限する。
- バッファオーバーフロー対策ツールを利用する。
* クライアントサイドアタック [#y2d25dd9]
** クロスサイト・スクリプティング [#kb97b3f2]
- Webページに出力する全ての要素に対して、エスケープ処理(...
- エスケープ処理は、ASP.NETのコントロール群に任せ、基本的...
- スタイルシートを外部サイトから取り込めるようにしない
* ロジカルアタック [#pe807465]
** クロスサイト・リクエスト・フォージェリ(CSRF) [#k4c87194]
- 全ページのPOSTパラメータに秘密情報を挿入し、サーバで記...
** プロセスフロー管理の不備 [#d800b7d9]
- 不正な画面遷移を防ぐために、TransactionTokenを利用する...
- 重要なデータ処理の直前はPOST動作にする。GETを使わない。
* その他 [#hbd3c7a3]
** HTTPヘッダ・インジェクション [#m98c893b]
- 外部から渡されるパラメータを、直接HTTPヘッダ情報として...
-- 上記が実現できない場合は、レスポンスヘッダ記述用APIを...
** バックドアとデバッグオプション [#hf80b9f3]
- 実装用、または試験用にバックドアやデバッグオプションが...
ページ名: