Rubyリファレンス: Home

untaint (Object)

Edit   History

標準クラス・モジュール > Object > untaint

obj.untaint

untaintメソッドは、オブジェクトの汚染状態を取り除きます。戻り値はレシーバ自身です。

次の例では、セーフレベルを1に上げてコードを実行しています。taintメソッドで文字列codeを汚染するとevalで例外が発生し、untaintメソッドで汚染を取り除くと例外は発生しなくなります。

$SAFE = 1
 
begin
  code = "puts 'hello'"
  code.taint
  eval(code)
rescue SecurityError
  p $!
end
 
code.untaint
eval(code)
#<SecurityError: Insecure operation - eval>
hello

セーフレベル

セーフレベルが3以上のときは、untaintメソッドは使えません(例外SecurityErrorが発生します)。

関連項目