別のキーワード
種類
- 文書 (103)
- インスタンスメソッド (13)
- 変数 (11)
- 特異メソッド (11)
- マクロ (2)
モジュール
- Kernel (11)
キーワード
-
$ SAFE (11) -
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (11) -
NEWS for Ruby 2
. 1 . 0 (11) -
NEWS for Ruby 2
. 3 . 0 (9) -
NEWS for Ruby 2
. 6 . 0 (6) - OBJSETUP (2)
-
ruby 1
. 6 feature (11) -
ruby 1
. 8 . 2 feature (11) -
ruby 1
. 8 . 3 feature (11) -
ruby 1
. 8 . 4 feature (11) -
ruby 1
. 9 feature (11) -
safe
_ level (7) - taint (6)
- tmpdir (11)
- セキュリティモデル (11)
検索結果
-
Kernel
$ $ SAFE -> Integer (6101.0) -
カレントスレッドのセーフレベルを表す整数です。
カレントスレッドのセーフレベルを表す整数です。
セーフレベルについてはspec/safelevel を参照してください。
Thread.current.safe_level と同じです。
非整数を代入しようとすると TypeError が発生します。
この変数はスレッドローカルです。
Ruby起動時の初期値は 0 です。カレントプロセスのセーフレベルを表す整数です。
セーフレベルについてはspec/safelevel を参照してください。
Thread.current.safe_level と同じです。
非整数を代入しようとすると TypeError が発生します。
この変数はグローバルスコープです。
Ruby起動時の初期値は 0 です。 -
Kernel
$ $ SAFE -> object (6101.0) -
通常のグローバル変数です。
通常のグローバル変数です。
Ruby 2.7 以前は特殊変数でしたが、Ruby 3.0 から通常のグローバル変数になりました。 -
セキュリティモデル (84.0)
-
セキュリティモデル RubyにはCGI等のプログラミングを安全に行うことを助ける為に、セキュリティ 機構が備わっています。
...バル変数 $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'
//}......染された文字列を引数とした以下の操作
* Dir, IO, File, FileTest のメソッド呼び出し
//emlist{
$ ruby -e '$SAFE = 1; open(ARGV[0])' hoge
-e:1:in `initialize': Insecure operation - initialize (SecurityError)
from -e:1
//}
*... -
ruby 1
. 6 feature (78.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 で中身のあるフ......puts md
puts MD5.hexdigest("123")
: ((<Struct>))
フリーズされた構造体オブジェクトが変更できていました。また、$SAFE =
4 のときの変更を禁止するようにしました。((<ruby-talk:19167>))
cat = Struct.new("Cat", :name, :age, :life)
a = cat.... -
セキュリティモデル (78.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)
//}
原則として、各セキュリティレベルにはそれ以下のセキュリティレ......染された文字列を引数とした以下の操作
* Dir, IO, File, FileTest のメソッド呼び出し
//emlist{
$ ruby -e '$SAFE = 1; open(ARGV[0])' hoge
-e:1:in `initialize': Insecure operation - initialize (SecurityError)
from -e:1
//}
*... -
ruby 1
. 8 . 3 feature (36.0) -
ruby 1.8.3 feature *((<ruby 1.8 feature>)) *((<ruby 1.8.2 feature>))
...イルされた時のみ。
=== 2005-09-09
: $SAFE [ruby] [compat]
メソッドが定義された時の $SAFE レベルを記憶するようになりました。
メソッドは定義された時の $SAFE レベルで実行されます。
$SAFE レベル 3 以上の環境下において定......出すことは、$SAFE レベル が 0 のとき
禁止されるようになりました。
$ cat mthd_taint.rb
th = Thread.new{
$SAFE = 3
class Hoge
def foo
puts "safe level: #{$SAFE}"
end
end
}
th.join
p $SAFE
Hoge.new.foo... -
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (30.0) -
1.6.8から1.8.0への変更点(まとめ) * ((<1.6.8から1.8.0への変更点(まとめ)/インタプリタの変更>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加されたクラス/モジュール>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加されたメソッド>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加された定数>)) * ((<1.6.8から1.8.0への変更点(まとめ)/拡張されたクラス/メソッド(互換性のある変更)>)) * ((<1.6.8から1.8.0への変更点(まとめ)/変更されたクラス/メソッド(互換性のない変更)>)) * ((<1.6.8から1.8.0への変更点(まとめ)/文法の変更>)) * ((<1.6.8から1.8.0への変更点(まとめ)/正規表現>)) * ((<1.6.8から1.8.0への変更点(まとめ)/Marshal>)) * ((<1.6.8から1.8.0への変更点(まとめ)/Windows 対応>)) * ((<1.6.8から1.8.0への変更点(まとめ)/廃止された(される予定の)機能>)) * ((<1.6.8から1.8.0への変更点(まとめ)/ライブラリ>)) * ((<1.6.8から1.8.0への変更点(まとめ)/拡張ライブラリAPI>)) * ((<1.6.8から1.8.0への変更点(まとめ)/バグ修正>)) * ((<1.6.8から1.8.0への変更点(まとめ)/サポートプラットフォームの追加>))
...:17878>)), ((<ruby-core:00444>))
: ((<Proc>)) [bug]
$SAFE が、1 or 2 のとき
汚染された Proc は、ブロックにできなくなりました ((<ruby-dev:15682>))
((-あらい 2003-08-06: できてる・・・?-))
$SAFE = 1
proc = proc {}
proc.taint......0
: ((<セキュリティモデル>)), ((<組み込み変数/$SAFE>)) [bug], [change]
((<終了処理>))直前に $SAFE が 0 になるように変更されました。
((<ruby-core:01119>))
$SAFE = 1
END { p $SAFE }
=> ruby 1.6.8 (2002-12-24) [i586-linux]... -
ruby 1
. 9 feature (24.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 で結果が大きすぎる場合にはすぐにエラーが出るようにな... -
Dir
. tmpdir -> String (18.0) -
テンポラリファイルを作成するのに使うディレクトリ(テンポラリディレクトリ)の絶対パスを 文字列として返します。 $SAFE によって返す文字列は変わります。
...して返します。
$SAFE によって返す文字列は変わります。
# WindowsXPの場合
require "tmpdir"
p Dir.tmpdir #=> "C:/DOCUME~1/taro3/LOCALS~1/Temp"
$SAFE = 1
p Dir.tmpdir #=> "C:/WINDOWS/temp"
$SAFE = 2
p Dir.tmpdir #=> "C:/WINDOWS/temp"
$SAFE = 3
p Dir.tmpdir... -
void OBJSETUP(obj
, VALUE klass , int typeflag) (16.0) -
obj をクラス klass とフラグ typeflag で初期化する。 $SAFE >= 3 のときは無条件で汚染する。
...obj をクラス klass とフラグ typeflag で初期化する。
$SAFE >= 3 のときは無条件で汚染する。... -
NEWS for Ruby 2
. 1 . 0 (12.0) -
NEWS for Ruby 2.1.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
...。
https://rubygems.org/gems/curses
=== 組込みのグローバル変数の互換性に影響のある変更
* $SAFE
* $SAFE=4 は廃止されました。$SAFE に4以上の値をセットすると ArgumentError が発生します。
=== C API の更新
* 非推奨: rb_gc_set_par... -
NEWS for Ruby 2
. 3 . 0 (12.0) -
NEWS for Ruby 2.3.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
...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... -
Dir
. tmpdir -> String (6.0) -
テンポラリファイルを作成するのに使うディレクトリ(テンポラリディレクトリ)の絶対パスを 文字列として返します。 $SAFE によって返す文字列は変わります。
...ィレクトリ)の絶対パスを
文字列として返します。
$SAFE によって返す文字列は変わります。
# WindowsXPの場合
require "tmpdir"
p Dir.tmpdir #=> "C:/DOCUME~1/taro3/LOCALS~1/Temp"
$SAFE = 1
p Dir.tmpdir #=> "C:/WINDOWS/temp"
# Linuxの場合 /tmp に... -
NEWS for Ruby 2
. 6 . 0 (6.0) -
NEWS for Ruby 2.6.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
...は ChangeLog ファイルか bugs.ruby-lang.org の issue を参照してください。
== 2.5.0 以降の変更
=== 言語仕様の変更
* $SAFE はプロセスグローバルで扱われることになると共に、0以外を設定した後に0に戻せるようになりました。 14250......* 新規メソッド
* 関数合成用に Proc#<< と Proc#>> が追加されました。 6284
* 非互換な変更
* Proc#call が $SAFE を変更しなくなりました。 14250
* Random
* 新規メソッド
* Random.bytes が追加されました。 4938
* Range......行しなくなりました。
これは 14245 の続きです。
=== 実装の改善
* Proc#call が高速化しました。
もう $SAFE を気にしなくてもよくなったためです。 14318
* Proc#call を何度も使っている lc_fizzbuzz ベンチマークで1.4倍の...