タグ

Securityとutf-8に関するTAKESAKOのブックマーク (3)

  • Rails 2系のXSS脆弱性がRuby 1.9では影響なしとされる理由 - 岩本隆史の日記帳(アーカイブ)

    Rails 2系のXSS脆弱性を修正するパッチが先日公開されました。 4日(米国時間)、Ruby on Railsの2系すべてのバージョンにXSSの脆弱性があることがRiding Rails: XSS Vulnerability in Ruby on Railsにおいて発表された。特定のUnicode文字列を使ってチェックをくぐり抜け、任意のHTMLを送り込まれる危険性がある。なおRuby 1.9系で動作しているアプリケーションはこの影響を受けない。 http://journal.mycom.co.jp/news/2009/09/07/048/index.html この件に関して、大垣さんは次のように説明しています。 RoRの脆弱性に関連してRuby1.9では安全、と解説されていますが、それはRuby1.9は不正な文字エンコーディングを受け付けないからです。 何故かあたり前にならない文字エ

    Rails 2系のXSS脆弱性がRuby 1.9では影響なしとされる理由 - 岩本隆史の日記帳(アーカイブ)
  • 第4回 UTF-8の冗長なエンコード | gihyo.jp

    今回は、文字コードに関連するセキュリティの話題では古参ともいえるUTF-8の冗長なエンコードというテーマについて紹介します。 UTF-8とは UTF-8は、各文字を1~4バイトの可変長で表現するUnicodeの符号化方式のひとつです。 U+0000からU+007Fの範囲の文字を0x00から0x7Fの1バイトで表現しているため、US-ASCIIと互換性がある、バイト列の途中からでも文字の先頭バイトを簡単に検出できる、多バイト文字の途中に0x00や0x5C(\⁠)⁠、0x2F(/)などが現れない、などの特徴があります。 UTF-8での文字のビットパターンは表1のようになります。 表1 UTF-8でのビットパターン

    第4回 UTF-8の冗長なエンコード | gihyo.jp
    TAKESAKO
    TAKESAKO 2009/05/08
    『冗長なUTF-8による検査の漏れを防ぐもっとも最善の方法は,UTF-8の検査や他の符号化形式への変換をライブラリやフレームワークに任せ,「自前でUTF-8を処理しない」ということに尽きます。』
  • [セキュリティ]javascript://のXSS 00:17 - 2008-07-30 - T.Teradaの日記

    こんな場合、普通はjavascriptやdataスキームなどを使ってXSSさせるのでしょう。 <a href="ここにHTMLエンコードされて入る">link</a> しかし、このアプリは「javascript://...」のように、先頭からアルファベット数文字が続き、その直後に「://」が付いている値以外は、エラーではじいてしまいます。 この「:」のあとの「//」が曲者です。 dataスキーマを試してみましたが、「//」があるとどうやらダメらしいということで、javascriptスキームで頑張ってみます。 まずはこんな感じです。 <a href="javascript://hoge[0x0A]alert(111)">link</a> 「//」が行コメントの開始になるため、[0x0A](LF)や[0x0D][0x0A](CRLF)を入れてみて、その後に動かしたいJavaScriptコードを

    [セキュリティ]javascript://のXSS 00:17 - 2008-07-30 - T.Teradaの日記
    TAKESAKO
    TAKESAKO 2008/07/31
    【a href="javascript://hoge[0xE2][0x80][0xA8]alert(111)" JavaScriptコード内のU+2028(あるいはU+2029)を、Firefoxが改行文字と認識することを利用しています】
  • 1