Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Wiki clones attachment problem $BE:IU%U%!%$%k$NLdBj(B

2 views
Skip to first unread message

Yasushi Shinjo

unread,
May 20, 2005, 6:24:00 AM5/20/05
to
新城@筑波大学情報です。こんにちは。

Wikiクローンのいくつかに、添付ファイルでクロスサイト・スクリ
プティング攻撃に対する脆弱性が見つかっています。

http://www.ipa.go.jp/security/vuln/documents/2005/JVN_465742E4_Wiki.html
http://jvn.jp/jp/JVN%23465742E4/index.html

結局、添付ファイルとして HTML のテキストをを送り込んだら、そ
れをそのまま Content-Type: text/html で送り返すという所に問
題があるということなのでしょう。

対策としては、添付ファイルは、Content-Type:
application/binary にしてしまって、ダウンロードしてもらえば
いいかと思いました。まあ、ダウンロードしたファイルをピコピコ
すれば、それはローカルの権限で JavaScript が動いたりしてもっ
と危ないという話もあるかもしれませんが、それはクロスサイト・
スクリプティング攻撃ではないので、クッキーが盗まれるとか、そ
ういうことはありません。

PukiWiki では、こんな感じで修正してみました。
----------------------------------------------------------------------
% diff attach.inc.php.~1~ attach.inc.php
603c603,604
< header('Content-Type: ' . $this->type);
---
> // header('Content-Type: ' . $this->type);
> header('Content-Type: application/binary');
%
----------------------------------------------------------------------

Tiki は、こんな感じ。
------------------------------------------------------------
% diff attach.rb.~1~ attach.rb
195c195,196
< "Content-Type: " + ctype + "\r\n",
---
> # "Content-Type: " + ctype + "\r\n",
> "Content-Type: " + "application/binary" + "\r\n",
%
------------------------------------------------------------

ただ、こうしてしまうと、全部の添付ファイルが
application/binary になってしまうので、image/gif なんかもダ
ウンロードしてしまって、インライン・イメージが使えなくなりま
す。インライン・イメージを有効にするには、もう少し if 文入れ
て凝ったものにした方がいいでしょう。

\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 電子・情報       \\

Masamichi Takatsu

unread,
May 22, 2005, 3:45:17 AM5/22/05
to
高津@ドーガです。

記事 <YAS.05Ma...@kirk.is.tsukuba.ac.jp> で
Yasushi Shinjoさんは書きました

> 対策としては、添付ファイルは、Content-Type:
> application/binary にしてしまって、ダウンロードしてもらえば
> いいかと思いました。

RFC2046/IANA的には、application/octet-stream ですよね。
っていうのはさておき、

Internet Explorer は Content-Type や拡張子は無視して、データの先頭部分を
実際に見てから、どう表示するかを決定するという困った仕様になってるので、
Content-Type を application/octet-stream としても、<a herf="...">でリンク
するのでは意味がありません。


どうせやるなら、
Content-Disposition: attachment; filename="foobar"
といったヘッダを出力すれば、IE の場合、ファイル保存処理を行ってくれるように
なります。

PROJECT TEAM DoGA 高津正道 ta...@doga.jp
TBD0...@nifty.ne.jp
PROJECT TEAM DoGAのホームページ → http://doga.jp/
5月22日(日) 今日のマーフィーの法則 [バン・ロイの第1法則]
忠告の善し悪しを区別できる人は、忠告を必要としていない。

0 new messages