タグ

TwitterとSecurityとHTMLに関するraimon49のブックマーク (2)

  • 処理開始後の例外処理では「サニタイズ」が有効な場合もある

    このエントリでは、脆弱性対処における例外処理について、奥一穂氏(@kazuho)との会話から私が学んだことを共有いたします。セキュアプログラミングの心得として、異常が起これば直ちにプログラムを終了することが推奨される場合がありますが、必ずしもそうではないというのが結論です。 はじめに Webアプリケーションの脆弱性対策では、脆弱性が発生するのはデータを使うところであるので、データを使う際の適切なエスケープ処理などで対処するのがよいと言われます。しかし、処理内容によってはエスケープができない場合もあり、その場合の対処についてはまだ定説がないと考えます。 エスケープができない場合の例としては、以下があります。 SQLの数値リテラルを構成する際に、入力に数値以外の文字が入っていた メール送信しようとしたが、メールアドレスに改行文字が入っていた 入力されたURLにリダイレクトしようとしたところ、U

    raimon49
    raimon49 2012/04/03
    フェールセーフとして敢えてバリデーションでなくサニタイズを選ぶ場面について。臭い物への蓋だが蓋の大きさをきちんと考える。文脈としては出力時エスケープに「サニタイズ:受け付けられない文字を削除するか、他
  • 入力時に文字参照に変換するのがよろしくない理由 | 水無月ばけらのえび日記

    Twitterのクロスサイト・スクリプティング(XSS)対策は変だ (www.tokumaru.org)」。文字参照に変換した状態で DB に格納しているというのは、けっこう良くある話だろうと思います。この手のエスケープしすぎによる化けは、twitter に限らず、よく見かけますので……。 ※HTML のエスケープに限らず、入力欄に \ を入れて検索すると \\ に化けて、検索ボタンを押すたびに \ が増殖していくという面白いシステムも良くありますね。 一昔前のフリーの掲示板 CGI などでは、フォームの値を読み取るところで < → &lt; " → &quot; のように文字参照に変換してしまうのが一般的でした。この手のアプリケーションは、 絶対に HTML にしかデータを出力しないフォームからの入力以外のデータを処理しない作者が一人で開発しているので、出力時の処理も把握しているという

    raimon49
    raimon49 2007/09/02
    あらかじめ文字参照に変換した状態で DB に格納するのは、小規模なフリー CGI だからこそ成立していた作法
  • 1