影舞でSecurityError

インストールが簡単なバグトラッキングシステム「影舞」を、Ruby1.8.5の環境にインストールしたら、

Following errors occurred. Please contact administrator.
Insecure: can't intern tainted string (SecurityError)

というエラーメッセージが表示された。

影舞のホームページを見ると、動作環境がRuby 1.8.2となっている。
Rubyはバージョン間の互換性が低いから、Ruby1.8.5には対応いていないのかも。

とりあえず、 /kagemai/lib/kagemai/message_bundle.rb の69行目を、

@messages[key.intern] = message

から、

@messages[key.untaint.intern] = message

に変更して、動作することを確認した。

しかし、Rubyの後方互換性の低さは何とかならないものか。

追記
ほかにも修正する必要がありそう。
個人で使うのなら、セーフモードを変更した方が早いかも。
/kagemai/html/guest.cgi の29行目。

$SAFE = 1

この行をコメントアウトする。

#$SAFE = 1

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください