ただただしです。 2009/1/28 <ds14050 / vvvvvv.sakura.ne.jp>: > こちらで一応調べてみた結果が日記に書いてあります。 > 若干まとまりがありませんが何かの足しにしてください。 > > http://vvvvvv.sakura.ne.jp/ds14050/diary/20090113.html#p01 事の起こり > http://vvvvvv.sakura.ne.jp/ds14050/diary/20090114.html#p01 事の起こり > http://vvvvvv.sakura.ne.jp/ds14050/diary/20090116.html#p01 問題1 > http://vvvvvv.sakura.ne.jp/ds14050/diary/20090117.html#p01 問題2,まとめ > http://vvvvvv.sakura.ne.jp/ds14050/diary/20090119.html#p01 情報ありがとうございます。読んでなかった! ds14050さんのおっしゃるように、あとから追加したパスをuntaintしたら requireでのエラーは消えました。#でもそのあとのwriteでまたエラー orz 西山さんや黒田さんの情報も確認しました。まとめると$SAFE=1では以下 のような問題が発生するようです。CGIを$SAFE=1で動かすのはよく使わ れている手法で、mod_rubyも同様な環境なので、これはまずいんじゃない かと思います: 1. $LOAD_PATHの中に汚染されたパスが混じっていると、そこに含まれな いパスからのrequireも問答無用でSecurityErrorになる 汚染されたパスでファイルを見つけたときにだけエラーになって欲しい。 もしくは、もうちょっと詳細なメッセージが欲しい。現状のSecurityError は、エラー情報が丸め込まれてしまっている印象。 2. 拡張ライブラリが$SAFE=1のもとでrequireできない 回避策がないような? stringioを内部でrequireしているopen-uriなどがいっ さい使えなくなります。バグだと思うのですが。 3. gemも$SAFE=1のもとでは使えない 1.と同根だと思いますが、実行時に動的に追加されたパスがすべて汚染さ れているので、$SAFEではgemがrequireできなくなっています。 #まだ他にもあるヨカン…… -- ♪ツッコミは、短く鋭く愛を込めて。 ただただし <http://tdtds.jp/> ※メールアドレスが変わりました※