Namazu-devel-ja(旧)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: namazu-2.0.10rc1
On Thu, 20 Dec 2001 18:44:24 +0900
"TAKAGI, Hiromitsu" <takagi.hiromitsu@xxxxxxxxxx> wrote:
> subscribe Hiromitsu Takagi
うげげ、大変失礼しました。はい、たった今ここをsubscribeしました。
On Tue, 18 Dec 2001 23:52:12 +0900
Tietew <tietew@xxxxxxxxxx> wrote:
>
> > namazu-2.0.10rc1 の用意をしました。
> > <ftp://ftp.namazu.org/namazu/test/namazu-2.0.10rc1.tar.gz>
> >
> > とある方より指摘のあった、さらなる cross-site scripting の修正と、コー
> > ドレベルでの検証による buffer overflow の可能性の除去が今回の変更内容
> > になります。
>
> 差し支えなければ何故か忘れられている bug#55 も直していただけると
> 嬉しいのですが。
> コード的にも同じ場所…ですよね。
>
> see. <20010426150930.746BC38945@xxxxxxxxxxxxxxxx>
> <20010428044110.E6F6.TIETEW@xxxxxxxxxx>
>
> # てゆうか2.0.8の時点で <>" だけ対策して & が忘れられている
> # のは何故〜(^^;
この記事をウェブのアーカイブで拝見しまして、参加させていただきました。
URL中の&をエスケープするのが仕様的に正しいというのは、おそらく、たとえ
ば、
http://........../cgi-bin/foo?bar=1<=2
という場合に、「<」が「<」に展開されてしまうからなのかもしれません
(でも、「;」がなくても展開するのは仕様的にはどうなの?)が、
namazu.cgiで「lt」というパラメタを使っていなければ問題がなく、セキュリ
ティ的には、「"」が「"」にエスケープされていれば問題ないはずだ、
とお考えかもしれませんが、ところが、閲覧者が Netscape 4 を使用している
場合に、クロスサイトスクリプティングの問題をひきおこします。
具体的には、例えば以下のURLにアクセスさせられた場合です。
http://www.namazu.org/cgi-bin/namazu.cgi?query=a&{alert(document.domain)};&whence=0&max=10&idxname=www.namazu.org.ja
Netscape 4の独自仕様で、タグの属性値中に &{...}; があると「...」部が
JavaScriptとして実行されてしまいます。(糞機能と非難されNetscape 6では
廃止されたらしい。)
URLエンコードを適切に施す(「{」を「%7B」に)ことでもこの問題は回避さ
れると思います。
が、(URL中でも)「&」を「&」にするのが仕様的に正しいのですね。
HTML-Lintがおっしゃるには:
| `&xx;` は不明な実体参照です。
...
| CGI呼び出しでのパラメタ区切りは歴史的に & です。この & も & と
| 書かなければならないことに注意してください。
...
| CGI呼び出し中でも実体参照を用いなければならないことは、RFC1866(J)
| 8.2.1 や、HTML4.0(J)などに書かれています。これにからんで、パラメタ区切
| りは "&" じゃなくて ";" にしましょうとも書かれていますが実際そうなりつ
P.S.
11月25日に報告をした際には秘密裏に連絡をとるつもりでした(※1)が、も
うそうも言っていられない状況のようですので、ここに参加させていただくこ
とにしました。
※1: http://www.namazu.org/ml/namazu-devel-ja/msg02148.html
高木 浩光@独立行政法人産業技術総合研究所
http://staff.aist.go.jp/takagi.hiromitsu/