[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:33041] Re: [FAQ] /usr/share/doc/ の日本語 html 文書と apache (>=1.3.12)



こんにちは。松田陽一@PAL-NET三鷹です。

From: Masaki Ikeda <masaki@xxxxxxxxxxxx>
Subject: [debian-users:33031] Re: [FAQ] /usr/share/doc/ の日本語 html 文書と apache (>=1.3.12)
Date: Mon, 20 May 2002 16:05:49 +0900

> 池田@オレンジです。

どうもです。^^

> > 「 128個以上の文字コード体系(マルチバイトコード体系)の中には、
> > ISO-8859-1 にある特殊文字、例えば < > & 等を含むものも存在する。
> > これらが charset を誤って解釈されることにより、予想し得ないクロス
> > サイトスクリプティング攻撃ができる可能性がある。」
> > 
> > ということじゃないかと読み取りました。
> 
> というか、「ほとんどの文字コード体系では、ISO-8859-1で128以下の文字コー
> ドに割当てられている文字は同じ文字コードにマップされているが、いくつかの
> 16bitコードでは、これら特殊文字が別の目的にも使用されているため、charset
> を間違えるとマズいんじゃない?」って感じかな?

う゛、読解力の無さを思いっきり露呈してしまいました。

# というか、こういうフォローを心待ちにしていました。

> > ただ、これだけで <script> 等の文字列に誤解釈できる可能性って、
> > 本当にあるのでしょうか?
> 
> たとえばJISコードの中には< > &などが漢字コードとして使われています。
> 「紗智賓埔α熔餐」という文字列のJISコードは「^[$B<SCRIPT>&AMP;A^[(B」に
> なります。

そうか、 7bit JIS のことをすっかり忘れていました。
私、 EUC とシフト JIS のことしか考えてなかったんです。
文字化けとクロスサイトスクリプティング脆弱性の関係がようやくわか
りました。
一見文字化けに見える文字列が、実は悪意あるコードであり、文字コー
ド指定で隠すことができちゃうんですね。

[疑問その1]
ということは、 iso-2022-* 系はクロスサイトスクリプティング脆弱性
の要因を抱えた仕様である、と解釈できるでしょうか?

> 元々、この問題は「charsetの指定が(デフォルトで)無いため、charsetを誤っ
> て解釈する場合があり、それがクロスサイトスクリプティング脆弱性を引き起こ
> す可能性があるので、charsetはちゃんと付けましょう」という話なのですが、
> Apacheの「誤った」解決法は「(ウソでもいいから)何でもcharset付けましょ
> う」という事になってしまっています。
> 
> ですから、「現時点では」AddDefaultCharsetをonにするのは「誤ったcharsetが
> 付く可能性が高い」ため、むしろoffにする場合より危険性が増します。
> 
> ですから「Apache Projectがoffにすると危険だと言ってるのでoffにすべきでな
> い」という認識は誤りだと思います。

目から鱗、ってこういうときのことを言うのでしょう。

「何で文字化けする可能性のある設定を推奨するんだろう?」

ずっと web を検索し続けて抱いていた疑問が、今氷解した気分です。

> 1:本来的解決策
>  元々ApacheがMETAタグを無視して何でもDefaultCharsetを付けてしまうのが間
> 違いの元なので、これを解決すべき。

この実装の具体的方法は凡人の私には推測できませんので、誰か他の
偉い and/or 賢い人にお任せするとしまして。

AddDefaultCharset を設定する妥当性はない、ということは一応理解
したつもりでいます。

[疑問その2]
http レスポンスの際に MIME ヘッダで charset を設定すること、そ
して逆に html の meta タグは不要であると主張する意見が、

   リンク名 charsetパラメタの勧め: HTMLにおける文字符号化スキームの明示方法
        URL:
          http://www.fxis.co.jp/DMS/sgml/xml/saloon/html_correct_charset.html

   リンク名 Redirect 後表示するhtml のcharset
        URL:
          http://mm.apache.or.jp/pipermail/apache00-01/2000-March/000258.html

等で見られます。

長いこと html で meta タグを書き続けて来た自分にとって、どちら
がよいのか、わからなくなって来ました。
meta タグは止めるべきなのでしょうか。
--
夜に帰るため夜に帰るため夜に。
松田 陽一(yoh)
mailto:matsuda@xxxxxxxxxxxx
http://www2.palnet.or.jp/~matsuda/index.htm