記事個別表示 (2679)
これは「水無月ばけらのえび日記 : msearch におけるディレクトリトラバーサルの脆弱性」に関連するコメントです。
[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が無い場合以外書いてはいけません。
(続く)
これは「水無月ばけらのえび日記 : msearch におけるディレクトリトラバーサルの脆弱性」に関連するコメントです。
全読: [2656]Re: 「msearch におけるディレクトリトラバーサルの脆弱性」からのスレッド(12件)]