サニタイズする項目一覧でわかりやすいのを探しています。

http://d.hatena.ne.jp/cybert/20060831/1157031516
に一覧ありますが、これ以外にもあるのでしょうか?
簡潔かつ適度に詳しいページを探しています。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2008/03/31 08:30:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:y-kawaz No.1

回答回数1422ベストアンサー獲得回数226

ポイント35pt

質問者の中でサニタイズという言葉が一人歩きしていると思います。闇雲にサニタイズと言って、これをやっておけば大丈夫!みたいなのは一番困ります。

普通、そのデータが使われる場所も考えずに入力データに対して一括で変な処理を行うべきではないからです。


基本的にやるべきことは以下を常に心がけるだけです。

・出力部分で適切にエスケープ(urlencode、htmlspecialchars)する

・入力値を直接SQLに使わない→出来るだけプレースホルダを使う

・入力値を直接system関数などに使わない→必ずエスケープ(escapeshellarg)する。

・入力値をevalしない。


以下のURLで語られている高木さんの記事に関する話を上位だけでも読んでみてください。

サニタイズ言うな - Google検索

id:pahoo No.2

回答回数5960ベストアンサー獲得回数633

ポイント35pt

サニタイズ(sanitize)とは「消毒する」という意味です。

ソフトウェア開発においては、入力されたデータに“毒”があるという前提で、データを移動/出力する際に“消毒”する手法を指します。したがって、ブラックボックステストにおけるすべての「悪意のあるテストケース」を通さないような仕組みを実装しなければなりません。


ところが、これが簡単なことではありません。

おそらく「簡潔かつ適度に詳しいページ」は存在しないでしょう。もし、そういうページが見つかったとしても、それに頼ってサニタイズ処理することはお勧めできません。

なぜなら、アタッカーもそのページを見ており、その裏をかくような攻撃を仕掛けてくるからです。


質問の主旨から外れるようで申し訳ありませんが、むしろ入力時のバリデーション処理に注力した方がよいと思います。バリデーションの方が機能が少なくてすみます。

Struts2のValidation」が基本要件を網羅しています。


参考サイト

  • id:y-kawaz
    質問のURLで一覧されているのは攻撃の種類ですよね、そのエントリーではやるべきことに関して書かれているわけではないので惑わされないよう気を付けて下さい。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません