表4 サニタイジングでの入力時チェック
問題点 | 考慮点とノウハウ |
---|---|
SQLインジェクション |
ほとんどの RDBMS が準拠している
|
OSコマンドインジェクション |
.NET Frameworkが稼働する環境でのOSコマンドの例は以下のものがあります。
|
クロスサイトスクリプティング |
クロスサイトスクリプティング脆弱性対策においても入力データの無効化
|
URLリクエストへの無効文字挿入 |
URL 内に |
メールヘッダ改ざん |
メールヘッダの改竄を防止するため, 運用上の特徴や問題などから, おもな特殊文字の例は以下のものがあります。
別プログラムの動作や,
HTMLタグの埋め込みや,
|
H) ディレクトリトラバーサル
ディレクトリトラバーサルとは,
これを防ぐには各ディレクトリに適切なアクセス権を与えるとともに,
入力文字に
- 「//」
を含むパス名の場合: - 「/apphome//
user/ data」→ 「/apphome/ user/ data」 - 「/./」
を含むパス名: - 「/apphome/
./user」→ 「/apphome/ user」 - 「/../」
を含むパス名: - 「/apphome/
user/ ../ xml/」→ 「/apphome/ xml」
I) 不要なデコードの防止
WebアプリケーションのURL文字列中に,
これを防ぐためには不要なデコードはしないように設計します。また,
J) 予約デバイス名
Windows OSでは以下の文字列が予約語として使用されています。これらを入力された場合,
「AUX」,
K) レースコンディション
マルチスレッドアプリケーションにおいて発生する可能性があります。複数のスレッド間で同期が図られていないときに,
そのため,
しかし,