[Hiki-dev:00747] Re: ファイル添付機能の脆弱性について

Zurück zum Archiv-Index

KOMATSU Shinichiro koma2****@lovep*****
2005年 5月 22日 (日) 07:05:30 JST


小松です。

From: Kazuhiko <kazuh****@fdiar*****>
Subject: [Hiki-dev:00746] Re: ファイル添付機能の脆弱性について
Date: Sat, May 21, 2005 at 08:32:44PM JST

> 実際の危険を回避するという意味では、内容すべてを /<script\b/i でマッチさ
> せるのが確実だと思いますが、それを毎回やるのは高負荷だと思うので、もしそ
> れでやるなら mime-type の判定結果をキャッシュするようにしたいと思います。

一度添付したファイルが勝手に書き変わることはないので、
添付した時にチェックするといいと思います。
# まぁ、すでに添付されているファイルのことを考えると、
# 表示する時にも何らかのチェックはすべきでしょうけど。

で、添付の patch のように、/<script\b/i にマッチしたら
問答無用で拒絶するというのはいかがでしょう?

-- 
┏━━━━━━━━━━━━━━━━━━━━━━┓
                小松  晋一朗            
             koma2****@lovep*****
     http://bloghome.lovepeers.org/daymemo2/
┗━━━━━━━━━━━━━━━━━━━━━━┛
-------------- next part --------------
Index: misc/plugin/attach/attach.cgi
===================================================================
RCS file: /cvsroot/hiki/hiki/misc/plugin/attach/attach.cgi,v
retrieving revision 1.16
diff -u -r1.16 attach.cgi
--- misc/plugin/attach/attach.cgi	10 May 2005 09:23:25 -0000	1.16
+++ misc/plugin/attach/attach.cgi	21 May 2005 22:03:16 -0000
@@ -48,12 +48,17 @@
 	raise "File size is larger than limit (#{max_size} bytes)."
       end
       unless filename.empty?
-	open(path.untaint, "wb") do |f|
-	  f.print params['attach_file'][0].read
+	content = params['attach_file'][0].read
+	if (!@conf.options['attach.allow_script']) && (/<script\b/i =~ content)
+	  raise "You cannot attach a file that contains scripts."
+	else
+	  open(path.untaint, "wb") do |f|
+	    f.print content
+	  end
+	  r << "FILE        = #{path}\n"
+	  r << "SIZE        = #{File.size(path)} bytes\n"
+	  send_updating_mail(page, 'attach', r) if****@conf*****_on_update
 	end
-	r << "FILE        = #{path}\n"
-	r << "SIZE        = #{File.size(path)} bytes\n"
-	send_updating_mail(page, 'attach', r) if****@conf*****_on_update
       end
       redirect(cgi, "#{@conf.index_url}?c=#{command}&p=#{page.escape}")
     rescue Exception => ex


Hiki-dev メーリングリストの案内
Zurück zum Archiv-Index