種類
- 文書 (90)
- インスタンスメソッド (87)
- 関数 (36)
- マクロ (24)
- ライブラリ (21)
キーワード
-
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (12) -
NEWS for Ruby 2
. 1 . 0 (12) -
NEWS for Ruby 2
. 7 . 0 (6) -
OBJ
_ TAINT (12) -
OBJ
_ TAINTED (12) - Ruby用語集 (12)
- clone (21)
- dup (21)
-
initialize
_ copy (9) -
irb
/ completion (12) -
rb
_ obj _ taint (12) -
rb
_ obj _ tainted (12) -
rb
_ obj _ untaint (12) -
ruby 1
. 6 feature (12) -
ruby 1
. 8 . 3 feature (12) -
ruby 1
. 9 feature (12) - set (9)
- tainted? (9)
- untaint (9)
- untrust (9)
- セキュリティモデル (12)
検索結果
先頭5件
-
ruby 1
. 6 feature (78.0) -
ruby 1.6 feature ruby version 1.6 は安定版です。この版での変更はバグ修正がメイン になります。
...ruby-dev:17179>))
ruby -Tv # -v が無効 (ruby 1.6.7 (2002-03-01) [i586-linux])
=> ruby: No program input from stdin allowed in tainted mode (SecurityError)
=> ruby 1.6.7 (2002-07-30) [i586-linux]
: 2002-05-20 IO#close
双方向のパイプの dup を close_write す......e/nobu/a.rb"
: ((<String>))#each_line
正しく汚染が伝搬していませんでした。((<ruby-dev:13755>))
"foo\nbar\n".taint.each_line {|v| p v.tainted?}
=> ruby 1.6.4 (2001-06-04) [i586-linux]
false
true
=> ruby 1.6.4 (2001-08-06) [i586-linux]
true......e
: ((<NKF|nkf>)).nkf
正しく汚染が伝搬していませんでした。((<ruby-dev:13754>))
require 'nkf'
p NKF.nkf("-j", "a".taint).tainted?
=> ruby 1.6.4 (2001-06-04) [i586-linux]
false
=> ruby 1.6.4 (2001-08-06) [i586-linux]
true
: ruby -x
オプショ... -
Object
# untrust -> self (16.0) -
このメソッドは Ruby 2.1 から deprecated で、Ruby 3.2 で削除予定です。 Object#taint と同じ動作をします。
...このメソッドは Ruby 2.1 から deprecated で、Ruby 3.2 で削除予定です。
Object#taint と同じ動作をします。
@see Object#trust,Object#untrusted?... -
Object
# clone(freeze: nil) -> object (12.0) -
オブジェクトの複製を作成して返します。
...オブジェクトの複製を作成して返します。
dup はオブジェクトの内容, taint 情報をコピーし、
clone はそれに加えて freeze, 特異メソッドなどの情報も含めた完全な複製を作成します。
clone や dup は浅い(shallow)コピーであるこ......作成しようとしたときに発生します。
//emlist[][ruby]{
obj = "string"
obj.taint
def obj.fuga
end
obj.freeze
p(obj.equal?(obj)) #=> true
p(obj == obj) #=> true
p(obj.tainted?) #=> true
p(obj.frozen?) #=> true
p(obj.respond_to?(:fuga))......p(obj == obj_c) #=> true
p(obj_c.tainted?) #=> true
p(obj_c.frozen?) #=> true
p(obj_c.respond_to?(:fuga)) #=> true
obj_d = obj.dup
p(obj.equal?(obj_d)) #=> false
p(obj == obj_d) #=> true
p(obj_d.tainted?) #=> true
p(obj_d.frozen?)......作成しようとしたときに発生します。
//emlist[][ruby]{
obj = "string"
obj.taint
def obj.fuga
end
obj.freeze
p(obj.equal?(obj)) #=> true
p(obj == obj) #=> true
p(obj.tainted?) #=> false
p(obj.frozen?) #=> true
p(obj.respond_to?(:fuga))......p(obj == obj_c) #=> true
p(obj_c.tainted?) #=> false
p(obj_c.frozen?) #=> true
p(obj_c.respond_to?(:fuga)) #=> true
obj_d = obj.dup
p(obj.equal?(obj_d)) #=> false
p(obj == obj_d) #=> true
p(obj_d.tainted?) #=> false
p(obj_d.frozen?)... -
Object
# dup -> object (12.0) -
オブジェクトの複製を作成して返します。
...オブジェクトの複製を作成して返します。
dup はオブジェクトの内容, taint 情報をコピーし、
clone はそれに加えて freeze, 特異メソッドなどの情報も含めた完全な複製を作成します。
clone や dup は浅い(shallow)コピーであるこ......作成しようとしたときに発生します。
//emlist[][ruby]{
obj = "string"
obj.taint
def obj.fuga
end
obj.freeze
p(obj.equal?(obj)) #=> true
p(obj == obj) #=> true
p(obj.tainted?) #=> true
p(obj.frozen?) #=> true
p(obj.respond_to?(:fuga))......p(obj == obj_c) #=> true
p(obj_c.tainted?) #=> true
p(obj_c.frozen?) #=> true
p(obj_c.respond_to?(:fuga)) #=> true
obj_d = obj.dup
p(obj.equal?(obj_d)) #=> false
p(obj == obj_d) #=> true
p(obj_d.tainted?) #=> true
p(obj_d.frozen?)......作成しようとしたときに発生します。
//emlist[][ruby]{
obj = "string"
obj.taint
def obj.fuga
end
obj.freeze
p(obj.equal?(obj)) #=> true
p(obj == obj) #=> true
p(obj.tainted?) #=> false
p(obj.frozen?) #=> true
p(obj.respond_to?(:fuga))......p(obj == obj_c) #=> true
p(obj_c.tainted?) #=> false
p(obj_c.frozen?) #=> true
p(obj_c.respond_to?(:fuga)) #=> true
obj_d = obj.dup
p(obj.equal?(obj_d)) #=> false
p(obj == obj_d) #=> true
p(obj_d.tainted?) #=> false
p(obj_d.frozen?)... -
Set
# clone -> Set (12.0) -
集合を複製して返します。
...集合を複製して返します。
dup は、集合の内容と taint 情報のみコピーします。
clone は、それに加えて、freeze 情報と特異メソッドをコピーします。
いずれも共通して、内部記憶として保持するハッシュもコピーしますが、......のものはコピーしません。
Set クラスでは、dup と clone に共通して、内部記憶として
用いるハッシュも含めて taint 情報をコピーします。
ただし、clone では内部記憶の freeze 情報はコピーされません。
このため、freeze された... -
Set
# dup -> Set (12.0) -
集合を複製して返します。
...集合を複製して返します。
dup は、集合の内容と taint 情報のみコピーします。
clone は、それに加えて、freeze 情報と特異メソッドをコピーします。
いずれも共通して、内部記憶として保持するハッシュもコピーしますが、......のものはコピーしません。
Set クラスでは、dup と clone に共通して、内部記憶として
用いるハッシュも含めて taint 情報をコピーします。
ただし、clone では内部記憶の freeze 情報はコピーされません。
このため、freeze された... -
set (12.0)
-
集合を表す Set クラスと、取り出し順序を保証した SortedSet クラスを提供 します。
...事項
集合オブジェクトに対する taint, untaint, freeze の各
メソッドの効果は、内部記憶として保持するハッシュにも適用されます。
集合オブジェクトおよびその内部記憶にセットされた taint 情報は、
dupおよび clone メソッド... -
セキュリティモデル (12.0)
-
セキュリティモデル RubyにはCGI等のプログラミングを安全に行うことを助ける為に、セキュリティ 機構が備わっています。
...す。
オブジェクトの汚染に関連するメソッド
: Object#taint
オブジェクトを汚染する
: Object#tainted?
オブジェクトが汚染されている場合に真を返す
: Object#untaint
オブジェクトの汚染を取り除く
=== セーフレベル......染されるオブジェクト
* IOや環境変数、コマンドライン引数(ARGV)から得られた文字列
$ ruby -e 'p ARGV[0].tainted?' hoge
true
環境変数PATHだけは例外で、値に危険なパスを含む場合のみ汚染されます。
ここでは危険な......る全てのオブジェクト
===== 禁止される操作
レベル2の制限に加え、以下の操作が禁止されます。
* Object#untaint
====[a:level4] レベル 4
廃止されました。
=== セーフレベルに関するその他の詳細
* requireは$SAFE = 0で実行され......st[例][ruby]{
def safe(level)
result = nil
Thread.start {
$SAFE = level
result = yield
}.join
result
end
lib = "insecure_library".taint # 外部から受け取った文字列(仮)
safe(1) { require lib } # $SAFE が 1 なので例外
require lib # 外側......vel)
result = nil
Thread.start do
$SAFE = level
result = yield
ensure
$SAFE = 0
end.join
result
end
lib = "insecure_library".taint # 外部から受け取った文字列(仮)
safe(1) { require lib } # $SAFE が 1 なので例外
require lib # 外側... -
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (6.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への変更点(まとめ)/サポートプラットフォームの追加>))
...82>))
((-あらい 2003-08-06: できてる・・・?-))
$SAFE = 1
proc = proc {}
proc.taint
p proc.tainted?
def foo(&b)
p b.tainted?
end
foo(&proc)
=> ruby 1.6.8 (2003-08-03) [i586-linux]
true
true... -
NEWS for Ruby 2
. 1 . 0 (6.0) -
NEWS for Ruby 2.1.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
...* これらのメソッドは非推奨になりました。$VERBOSE が true のときは警告を表示します。
Object#tainted?,Object#taint,Object#untaint とそれぞれ同じ動作です。
* Module#ancestors
* 特異クラスの祖先はそれ自身を含みます。
Th...