新生鳩丸掲示板♯

bakera.jp > 新生鳩丸掲示板♯ > [2679] Re: 「msearch におけるディレクトリトラバーサルの脆弱性」

記事個別表示 (2679)

[2679] Re: 「msearch におけるディレクトリトラバーサルの脆弱性」

えむけい (2005年3月21日 4時34分)

>脆弱性とは関係ありませんが、Unicode版msearchのページのUTF-16に関する説明が凄いですね。あまりに凄すぎるので思わず掲示板で突っ込んでしまいました【謎】。

なんか無言で削除された上にご利用をご遠慮されてしまったので(名前がNGワードになっていた)、削除された内容をこっちに貼り付けておきます。といっても(まさかこんな物凄い対応をされるとは夢にも思いませんでしたし)書き込んだ内容は保存していなかったので、正確に前回投稿した内容と同じではありませんけど。

------------------------------------------------------------

UTF-16BE, 16LE, 32BE, 32LEはBOMを付けることが禁止されている文字エンコーディングです。BOMがある場合にはUTF-16, UTF-32というcharset名にしなくてはなりません。

http://www.ietf.org/rfc/rfc2781.txt

|Systems labelling UTF-16BE text MUST NOT prepend a BOM to the text.

|Systems labelling UTF-16LE text MUST NOT prepend a BOM to the text.

|MUST label the text as "UTF-16", and SHOULD make sure the text starts with 0xFEFF.

Unicode版msearchはUTF-16, UTF-32の場合BOMがあることを前提にしているようですから、UTF-16BE, 16LE, 32BE, 32LEには「対応していない」というのが正解です。

ページ中のUTF-16LE, 16BEと書かれている箇所はUTF-16に、UTF-32BE, 32LEと書かれている場所はUTF-32に、すべて置き換える必要があります。

トップページ「2. 文字コードの指定」を鵜呑みにしてmetaタグのcharset指定にUTF-16BE, 16LE, 32BE, 32LEを入れてしまった人がいるかもしれませんから、何らかの手段で告知した方がいいかもしれません。

どうしてもbig endian、little endianを区別する必要がある場合(たとえばテストページの

http://www.marbacka.net/msearch/test/innehall.html

> 日本語のサンプル文章(XHTML, UTF-16LE)

> 日本語のサンプル文章(XHTML, UTF-16BE)

> 日本語のサンプル文章(XHTML, UTF-32LE)

> 日本語のサンプル文章(XHTML, UTF-32BE)

という部分)は、

> 日本語のサンプル文章(XHTML, UTF-16, litle-endian)

> 日本語のサンプル文章(XHTML, UTF-16, big-endian)

> 日本語のサンプル文章(XHTML, UTF-32, litle-endian)

> 日本語のサンプル文章(XHTML, UTF-32, big-endian)

のように書くしかありません。UTF-16LE, 16BE, 32LE, 32BEと書くとBOMなしという意味になるため、本当にBOMが無い場合以外書いてはいけません。

(続く)

コメントフォーム

※広告や宣伝の書き込みはご遠慮ください。

:

:

:

最近の日記

関わった本など