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&lt=2
という場合に、「&lt」が「<」に展開されてしまうからなのかもしれません
(でも、「;」がなくても展開するのは仕様的にはどうなの?)が、

namazu.cgiで「lt」というパラメタを使っていなければ問題がなく、セキュリ
ティ的には、「"」が「&quot;」にエスケープされていれば問題ないはずだ、

とお考えかもしれませんが、ところが、閲覧者が 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中でも)「&」を「&amp;」にするのが仕様的に正しいのですね。

HTML-Lintがおっしゃるには:
 | `&xx;` は不明な実体参照です。
...
 | CGI呼び出しでのパラメタ区切りは歴史的に & です。この & も &amp; と
 | 書かなければならないことに注意してください。
...
 | 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/