トップ «前の日記(2004-10-05 (Tue)) 最新 次の日記(2004-10-07 (Thu))» 編集   RSS 1.0 FEED  

Journal InTime


2004-10-06 (Wed) [長年日記]

_ [ソフトウェア][mod_ruby] mod_rubyでcomment spamのフィルタリング

mod_securityでフィルタリングしているつもりだったのだが、URIが 正規化されてしまうことをすっかりわすれていた。

というわけで、mod_rubyでフィルタリング。

require "singleton"

class SpamFilter
  include Singleton

  def check_access(r)
    if %r%/\\./%.match(r.unparsed_uri)
      return Apache::FORBIDDEN
    end
    return Apache::OK
  end
end

これをspam-filter.rbという名前で、Rubyのロードパスに置いて、 httpd.confに

<Directory /home/shugo/public_html/jit/>
  RubyRequire "spam-filter"
  RubyAccessHandler SpamFilter.instance
</Directory>

のように記述すればOK。

_ [Ruby] BlueClothの_

BlueClothで、

mod_ruby, mod_perl

<p>mod<em>ruby, mod</em>perl</p>

になっちゃうのはバグ?

仕様だとしたら使いにくいなあ。

追記: よく考えたら、やっぱり仕様か。うーん

_ [mod_ruby] mod_ruby (2)

ところで、この制限はどうしても必要なのでしょうか。errorでなくて、warningにとどめて欲しいと思うのですが(riskを知っててworld writableにしているはずだし)。mod__rubyの制限ではなくて、RubyやApacheの制限なのでしょうか。

[hysteric programmer diaryより引用]

Rubyの仕様ですね。

excelsior:~$ mkdir foo
excelsior:~$ chmod 777 foo
excelsior:~$ cd foo
excelsior:foo$ ruby1.8 -e '$SAFE=1; require "date"' -e 0
-e:1: warning: Insecure world writable dir /home/shugo/foo/., mode 040777
-e:1:in `require': loading from unsafe path /home/shugo/ruby:/usr/local/lib/site_ruby/1.8:/usr/local/lib/site_ruby/1.8/i386-linux:/usr/local/lib/site_ruby:/usr/lib/ruby/1.8:/usr/lib/ruby/1.8/i386-linux:. (SecurityError)
        from -e:1

「riskを知っててworld writable」というのは微妙で、過去の問い合わせでは いずれも意識されてなかったりしました:(

どうしても、ということでしたら、httpd.confのトップレベルで、

RubySafeLevel 0

とすると、$SAFE == 0の挙動になります。

_ [ソフトウェア] Visual Studio .NET 2003

VMwareにインストールしようとしたら、内部エラーとか言ってこけてくれた。

%TEMP%にあるVSMsiLog*.txtを見ると、

CADpc:  SCC finished with status 1603
CADpc:  failed with error 1603

というエラーが、調べるとどうもCD-ROMへのアクセスに関するエラー のようだ。

VMwareの設定を見ると、なぜかCD-ROMドライブの設定のlegacy emulationが オンになっていた(たぶん、一時期、ide-scsiを外してた時があったので、その時にオンにしたのだと思う)ので、これをオフにしたら無事インストールできた。