From: Kazuhiro NISHIYAMA Date: 2009-01-28T02:03:11+09:00 Subject: [ruby-dev:37847] Re: $SAFE=1でのrequireがSecurityErrorになる条件 西山和広です。 At Tue, 27 Jan 2009 23:07:12 +0900, TADA Tadashi wrote: > > tDiaryのプラグインは$SAFE=1の下で動かしているのですが、この状 > 況でプラグイン動作時にrequireをするとSecurityErrorが出ます。正確 > には「Insecure operation - require (SecurityError)」です。 > > $SAFE=1でもrequireはできるので(↓)、原因はどこか他にあると思うの > ですが、よくわかりません。 > > % ruby19 -e '$SAFE=1; require "net/http";' > # =>エラーなし > > 同じコードが、ruby 1.8.7-p72では問題なく動作します。また、$SAFE > を0にすればruby 1.9.1rc2でも動きます。 拡張ライブラリだとSecurityErrorになるように見えます。 % ruby-trunk -ve '$SAFE=1;p require "net/http"' ruby 1.9.1p5000 (2009-01-27 trunk 21792) [i686-linux] true % ruby-trunk -ve '$SAFE=1;p require "stringio"' ruby 1.9.1p5000 (2009-01-27 trunk 21792) [i686-linux] -e:1:in `require': Insecure operation - require (SecurityError) from -e:1:in `
' % ruby-trunk -ve '$SAFE=1;p require "zlib"' ruby 1.9.1p5000 (2009-01-27 trunk 21792) [i686-linux] -e:1:in `require': Insecure operation - require (SecurityError) from -e:1:in `
' % ruby-trunk -ve '$SAFE=1;p require "erb"' ruby 1.9.1p5000 (2009-01-27 trunk 21792) [i686-linux] -e:1: warning: encoding 'UTF-8' is ignored, valid only in the first line except for shebang line. -e:1: warning: encoding 'Big5' is ignored, valid only in the first line except for shebang line. true % -- |ZnZ(ゼット エヌ ゼット) |西山和広(Kazuhiro NISHIYAMA)