ライブラリ
- ビルトイン (11)
モジュール
- Kernel (11)
キーワード
-
$ SAFE (11) -
NEWS for Ruby 2
. 1 . 0 (11) -
NEWS for Ruby 2
. 3 . 0 (9) -
NEWS for Ruby 2
. 6 . 0 (6) -
ruby 1
. 6 feature (11) -
ruby 1
. 8 . 2 feature (11) -
ruby 1
. 8 . 4 feature (11) -
ruby 1
. 9 feature (11) - セキュリティモデル (11)
検索結果
-
Kernel
$ $ SAFE -> Integer (15101.0) -
カレントスレッドのセーフレベルを表す整数です。
カレントスレッドのセーフレベルを表す整数です。
セーフレベルについてはspec/safelevel を参照してください。
Thread.current.safe_level と同じです。
非整数を代入しようとすると TypeError が発生します。
この変数はスレッドローカルです。
Ruby起動時の初期値は 0 です。カレントプロセスのセーフレベルを表す整数です。
セーフレベルについてはspec/safelevel を参照してください。
Thread.current.safe_level と同じです。
非整数を代入しようとすると TypeError が発生します。
この変数はグローバルスコープです。
Ruby起動時の初期値は 0 です。 -
Kernel
$ $ SAFE -> object (15101.0) -
通常のグローバル変数です。
通常のグローバル変数です。
Ruby 2.7 以前は特殊変数でしたが、Ruby 3.0 から通常のグローバル変数になりました。 -
セキュリティモデル (168.0)
-
セキュリティモデル RubyにはCGI等のプログラミングを安全に行うことを助ける為に、セキュリティ 機構が備わっています。
... $SAFE で
設定します。
37415
$SAFE に関するルール
* プログラム開始時の$SAFEの値は0
* 各スレッドは作られた時点での親スレッドの$SAFEの値を引き継ぐ
//emlist[][ruby]{
$SAFE = 0
th = Thread.new{
p $SAFE # => 0
$SAFE = 1
}
th.join
p $SAFE # =......> 0
//}
* $SAFE の値を現在の値より小さく変更する事はできない
//emlist{
$ ruby -e '$SAFE = 1; $SAFE = 0'
-e:1: tried to downgrade safe level from 1 to 0 (SecurityError)
//}
原則として、各セキュリティレベルにはそれ以下のセキュリティレ......'$SAFE = 1; open(ARGV[0])' hoge
-e:1:in `initialize': Insecure operation - initialize (SecurityError)
from -e:1
//}
* ファイルテスト演算子の使用、ファイルの更新時刻比較
* 外部コマンド実行 (Kernel.#system, Kernel.#exec, Kernel.......バル変数 $SAFE で設定します。
各スレッドで個別のセーフレベルを設定することはできません。
セーフレベルが高くなるほど、行える操作は制限されます。
37415
$SAFE に関するルール
* プログラム開始時の$SAFEの値は0
*......//emlist{
$SAFE = 0
th = Thread.new do
p $SAFE # => 0
$SAFE = 1
ensure
$SAFE = 0
end
th.join
p $SAFE # => 0
//}
* $SAFE の値を現在の値より小さく変更する事もできる
//emlist{
$ ruby -e '$SAFE = 1; $SAFE = 0'
//}... -
NEWS for Ruby 2
. 6 . 0 (90.0) -
NEWS for Ruby 2.6.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
...は ChangeLog ファイルか bugs.ruby-lang.org の issue を参照してください。
== 2.5.0 以降の変更
=== 言語仕様の変更
* $SAFE はプロセスグローバルで扱われることになると共に、0以外を設定した後に0に戻せるようになりました。 14250......従来でも eval("[__FILE__, __LINE__]", binding) とすることでこれらの情報は得られましたが、
将来的に Kernel.#eval は binding のソースコード行を無視する変更を予定しているため 4352、
この新しいメソッドを用い......'x' が追加されました。 11258
* Kernel
* 別名
* Object#then が Object#yield_self の別名として追加されました。 14594
* 新規オプション
* Kernel.#Complex, Kernel.#Float, Kernel.#Integer,
Kernel.#Rational にエラー処理方法を指定... -
ruby 1
. 6 feature (84.0) -
ruby 1.6 feature ruby version 1.6 は安定版です。この版での変更はバグ修正がメイン になります。
...ambiguous first argument; make sure
ruby 1.6.7 (2002-07-30) [i586-linux]
"\\#"
nil
: 2002-04-29: rb_find_file()
$SAFE >= 4 で、絶対パス指定でない場合、SecurityError 例外が発生する
ようになりました。
: 2002-04-26: Regexp.quote......> ruby 1.6.7 (2002-04-04) [i586-linux]
#<MatchData:0x401b1c98>
nil
: 2002-03-25 ((<BasicSocket/BasicSocket.do_not_reverse_lookup>))
$SAFE > 3 で値を設定できなくなりました。
((<ruby-dev:16554>))
: 2002-03-23 IO#((<IO/read>))
サイズが 0 で中身のあるフ......def initialize(obj) @obj = obj end
def []=() @obj = obj end
def []() @obj end
end
module Kernel
def _ptr() Ptr.new(self) end
end
def foo(int)
int[] += 1
end
x = 1._ptr... -
NEWS for Ruby 2
. 1 . 0 (36.0) -
NEWS for Ruby 2.1.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
...IO#write_nonblock シンボルを返すためにキーワード引数 `exception: false` を受け付けるようになりました
* Kernel
* 追加: Kernel#singleton_method(Object#singleton_method)
* Module
* 追加: Module#using, which activates refinements of the specified module o......O
* 非互換: IO.open は外部エンコーディングが ASCII-8BIT のとき内部エンコーディングを無視します。
* Kernel.#eval, Kernel.#instance_eval, Module#module_eval
元の環境のスコープ情報をコピーするようになりました。これは、引数な......。
https://rubygems.org/gems/curses
=== 組込みのグローバル変数の互換性に影響のある変更
* $SAFE
* $SAFE=4 は廃止されました。$SAFE に4以上の値をセットすると ArgumentError が発生します。
=== C API の更新
* 非推奨: rb_gc_set_par... -
ruby 1
. 9 feature (30.0) -
ruby 1.9 feature ruby version 1.9.0 は開発版です。 以下にあげる機能は将来削除されたり互換性のない仕様変更がなされるかもしれません。 1.9.1 以降は安定版です。 バグ修正がメインになります。
...: Regexp#initialize でリテラルの正規表現を変更できなくなりました
: $SAFE=4 では Regexp#initialize で taint でない正規表現を変更できなくなりました
: Dir で $SAFE のセキュリティ検査を行うようになりました
: メソッド呼出し時......のセキュリティ検査の対象がひろがりました
: メソッドを alias した場合、メソッドの定義時の $SAFE に加えて現在の $SAFE も加味されるようになりました
: Bignum#pow で結果が大きすぎる場合にはすぐにエラーが出るようにな......#=> ruby 1.9.0 (2004-04-25) [i386-mswin32]
["{"]
=== 2004-04-08
: Iconv.list [lib] [compat]
((<ruby-dev:23063>))
=== 2004-04-06
: Kernel#open [ruby] [change]
可能なら最初の引数に対して to_open を呼ぶようになりました。
: Exception#to_str [ruby] [obsolete]... -
NEWS for Ruby 2
. 3 . 0 (24.0) -
NEWS for Ruby 2.3.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
...OSYS を起こしません。
サポートの有無を実行時ではなくビルド時に検出するためです。
11806
* Kernel
* Kernel.#loop は StopIteration で停止したときに nil ではなく最後に評価した要素を返します。
11498
* Module......ry_txt.html#label-2.5.1+-2F+2015-12-10
=== 組込みのグローバル変数の互換性に影響のある変更
* $SAFE
* $SAFE=2 と $SAFE=3 が廃止されました。$SAFE を2以上にすると ArgumentError が発生します。
5455
=== C API の更新
* rb_define_class_id_u... -
ruby 1
. 8 . 4 feature (24.0) -
ruby 1.8.4 feature ruby 1.8.4 での ruby 1.8.3 からの変更点です。
...from Kernel method.
#
# * eval.c (exec_under): frame during eval should preserve external
# information.
: super [bug]
Kernelのメソッド内でsuperを呼んだ時に、存在しないsuperclass
にアクセスしようとするバグの修正。
module Kernel......005 Yukihiro Matsumoto <matz@ruby-lang.org>
#
# * eval.c (set_trace_func): add rb_secure(4) to prevent adding
# tracing function.
$SAFE=4でtrace_funcの追加を禁止。
: printf [bug]
#Wed Dec 7 15:31:35 2005 Yukihiro Matsumoto <matz@ruby-lang.org>
#
# * sprintf.c... -
ruby 1
. 8 . 2 feature (12.0) -
ruby 1.8.2 feature ruby 1.8.2 での ruby 1.8.1 からの変更点です。
...追加。((<ruby-dev:23912>))
: File::Stat#dev_major [ruby] [new]
: File::Stat#dev_minor [ruby] [new]
((<ruby-core:03195>))
=== 2004-07-05
: Kernel#URI [lib] [new]
uri で追加。((<ruby-dev:23784>))
=== 2004-07-01
: OpenSSL::Cipher::Cipher#pkcs5_keyivgen [lib] [new]
: OpenSSL::Ciphe......した。
ファイル名に "~" が付いたバックアップファイルは残されません。((<ruby-list:39102>))
=== 2004-06-29
: misc
$SAFEが保存されない問題を修正しました。((<ruby-dev:23829>))
=== 2004-06-23
: net/imap [lib] [new]
added new option --ssl
=== 2004-...