Wiki clones attachment problem 添付ファイルの問題
新城@筑波大学情報です。こんにちは。
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 文入れ
て凝ったものにした方がいいでしょう。
\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 電子・情報 \\
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735