From: kensaku Maki Date: 2003-10-04T19:53:41+09:00 Subject: [ruby-list:38462] http経由でのERb.runについて まきです。 現在、Redhat9+Apache2.0.47+Ruby1.8.0+mod_ruby1.0.7 という環境で、ERbの勉強をしています。 次のようなスクリプトがhttp経由で実行できず、悩んでいます。 #-ここから require 'erb' file=File.open("sample.html","r"){|io| io.read} begin erb=ERB.new(file) erb.run(binding) rescue printf("%sが発生しました.\n",$!) end #-ここまで Rubyスクリプトからsample.htmlという 同一ディレクトリのファイルを読み出し、 Erbでパースして、そのまま吐き出すという スクリプトです。 このスクリプトをRedhat9上のコマンドラインで 実行すると、期待した通りの動きをします。 しかし、http経由でアクセスすると > Insecure operation - evalが発生しました. 言われてしまいます。 ERB.newでのセキュリティレベルの問題かとも思ったのですが、 ERB.new(file,0)とすると、セキュリティレベルは >tried to downgrade safe level from 1 to 0が発生しました (まぁ、これは当然かも) evalが認められるはずのERB.new(file,4)でも > Insecure: can't modify trusted bindingが発生しました. と云われます。 rubyスクリプトに実際にhtmlを書き込んだ場合は、 コマンドラインでもhttp経由でも動作します。 Apache/mod_rubyも問題かもしれませんが、どうかよろしくお願いします。 追記: Rubyのトップページを見ていたら、 メンテナの一人にmakiさんという方がいることを知り、 投稿する時の名前をどうしようかと(実際の名字が「まき」なので)。