キーワード
-
NEWS for Ruby 2
. 0 . 0 (12) -
NEWS for Ruby 2
. 3 . 0 (10) -
NEWS for Ruby 2
. 4 . 0 (9) -
NEWS for Ruby 3
. 1 . 0 (4) - Rubyの起動 (12)
- Ruby用語集 (12)
-
ruby 1
. 6 feature (12) -
ruby 1
. 8 . 3 feature (12) -
ruby 1
. 9 feature (12) - セキュリティモデル (12)
- パターンマッチ (12)
- 正規表現 (12)
検索結果
-
セキュリティモデル (3031.0)
-
セキュリティモデル RubyにはCGI等のプログラミングを安全に行うことを助ける為に、セキュリティ 機構が備わっています。
...を現在の値より小さく変更する事はできない
//emlist{
$ ruby -e '$SAFE = 1; $SAFE = 0'
-e:1: tried to downgrade safe level from 1 to 0 (SecurityError)
//}
原則として、各セキュリティレベルにはそれ以下のセキュリティレベルの制限も
適用......、以下の操作が禁止されます。
* Object#untaint
====[a:level4] レベル 4
廃止されました。
=== セーフレベルに関するその他の詳細
* requireは$SAFE = 0で実行される
* Level 1以上では起動時に以下の違いがある
* 環境変数 RU......ラムの一部だけを高いセーフレベルで実行することが可
能です。
//emlist[例][ruby]{
def safe(level)
result = nil
Thread.start {
$SAFE = level
result = yield
}.join
result
end
lib = "insecure_library".taint # 外部から受け取った文字列(仮)
safe(1......されました。
==== レベル 3
廃止されました。
====[a:level4] レベル 4
廃止されました。
=== セーフレベルに関するその他の詳細
* requireは$SAFE = 0で実行される
* Level 1以上では起動時に以下の違いがある
* 環境変数 RUB......行するには、以下のように ensure でセーフレベルを
戻す必要があります。
//emlist{
def safe(level)
result = nil
Thread.start do
$SAFE = level
result = yield
ensure
$SAFE = 0
end.join
result
end
lib = "insecure_library".taint # 外部から受け取... -
正規表現 (151.0)
-
正規表現 * metachar * expansion * char * anychar * string * str * quantifier * capture * grouping * subexp * selector * anchor * cond * option * encoding * comment * free_format_mode * absenceop * list * specialvar * references
...levelで呼出しのネストレベルを、nで位置を指定できます。
* \k<n+level> (n >= 1)
* \k<n-level> (n >= 1)
* \k'n+level' (n >= 1)
* \k'n-level' (n >= 1)
* \k<-n+level> (n >= 1)
* \k<-n-level> (n >= 1)
* \k'-n+level' (n >= 1)
* \k'-n-level'......(n >= 1)
また、以下の記法で名前付きキャプチャも同様のことができます。
* \k<name+level>
* \k<name-level>
* \k'name+level'
* \k'name-level'
以下の例は回文にマッチする正規表現です。
//emlist[][ruby]{
/\A(?<a>|.|(?:(?<b>.)\g<a>\k<b+0>))\z/.ma......>= 1)
* \k<n+level> (n >= 1) ネストレベル付き後方参照
* \k<n-level> (n >= 1) ネストレベル付き後方参照
* \k'n+level' (n >= 1) ネストレベル付き後方参照
* \k'n-level' (n >= 1) ネストレベル付き後方参照
* \k<-n+level> (n >= 1)... -
パターンマッチ (43.0)
-
パターンマッチ * patterns * variable_binding * variable_pinning * matching_non_primitive_objects * guard_clauses * current_feature_status * pattern_syntax * some_undefined_behavior_examples
...st[][ruby]{
jane = {school: 'high', schools: [{id: 1, level: 'middle'}, {id: 2, level: 'high'}]}
john = {school: 'high', schools: [{id: 1, level: 'middle'}]}
case jane
in school:, schools: [*, {id:, level: ^school}] # select the last school, level should match
"matched. school: #{id}"
else
"not......matched"
end
#=> "matched. school: 2"
case john # 指定された school の level は "high" だが、最後の school はマッチしない
in school:, schools: [*, {id:, level: ^school}]
"matched. school: #{id}"
else
"not matched"
end
#=> "not matched"
//}
===[a:matching_non_primitive_obj......matched"
end
#=> "matched. school: 2"
case john # 指定された school の level は "high" だが、最後の school はマッチしない
in school:, schools: [*, {id:, level: ^school}]
"matched. school: #{id}"
else
"not matched"
end
#=> "not matched"
//}
ローカル変数に加えてイ... -
ruby 1
. 6 feature (37.0) -
ruby 1.6 feature ruby version 1.6 は安定版です。この版での変更はバグ修正がメイン になります。
...ror
LoadError
Float
Binding
SignalException
Module
-:6:in `method_missing': stack level too deep (SystemStackError)
: %q(...)
% 記法によるリテラル表記でその区切り文字として英数字を指定
できなくな......hich
previously wasn't.
とあるけど実際にはできません。
$SAFE = 4; def a; end
=> -:1: Insecure operation `(null)' at level 4 (SecurityError)
ruby 1.6.4 (2001-06-04) [i586-linux]
=> -:1: Insecure: can't define method (SecurityError)
ruby 1.6.4 (2001-0......s)) klass = rb_cObject;
- if (klass == rb_cObject) {
- rb_secure(4);
- }
- if (rb_safe_level() >= 4 && !OBJ_TAINTED(klass)) {
+ if (rb_safe_level() >= 4 && (klass == rb_cObject || !OBJ_TAINTED(klass))) {
rb_raise(rb_eSecurityError, "Insecure: can't d... -
Rubyの起動 (25.0)
-
Rubyの起動 * cmd_option * shebang
...スクリプトを探すように
指示する必要があります。
: -T[level]
不純度チェックを行います。level を指定すると安全度レベルをその
レベルに設定します。level 省略時は 1 を指定したのと同じです。
CGIプログラムなどで......--version
Rubyのバージョンを表示します。
: -w
バージョンの表示を行う事無く冗長モードになります。
: -W[level]
冗長モードを三段階のレベルで指定します。それぞれ以下の通りです。
//emlist{
* -W0: 警告を出力しな......--version
Rubyのバージョンを表示します。
: -w
バージョンの表示を行う事無く冗長モードになります。
: -W[level]
: -W:category
冗長モードを三段階のレベルで指定します。それぞれ以下の通りです。
//emlist{
* -W0: 警告... -
ruby 1
. 8 . 3 feature (13.0) -
ruby 1.8.3 feature *((<ruby 1.8 feature>)) *((<ruby 1.8.2 feature>))
...ead.new{
$SAFE = 3
class Hoge
def foo
puts "safe level: #{$SAFE}"
end
end
}
th.join
p $SAFE
Hoge.new.foo
$ ruby-1.8.2 mthd_taint.rb
0
"safe level: 0"
$ ruby-1.8.3 mthd_taint.rb
0
mthd_taint.rb:11:in `foo':... -
NEWS for Ruby 2
. 0 . 0 (7.0) -
NEWS for Ruby 2.0.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
...ad of BINARY.
* TracePoint
* new class. This class is replacement of set_trace_func.
Easy to use and efficient implementation.
* toplevel
* added method:
* added main.define_method which defines a global function.
* added main.using, which imports refinements into the......olv
* 追加: Resolv::DNS#timeouts=
* 追加: Resolv::DNS::Config#timeouts=
* rexml
* REXML::Document#write はハッシュ引数をサポートしました
* REXML::Document#write は :encoding オプションをサポートしました。
XMLドキュメントのエンコ......うになりました
* --document オプションを追加して --rdoc, --ri オプションを置き換えました。
--no-document オプションを使ってドキュメントの生成を無効化することができます。
--document=rdoc を使うと rdoc だけを... -
NEWS for Ruby 2
. 3 . 0 (7.0) -
NEWS for Ruby 2.3.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
...* `j`と`J`が追加されました。
11215
=== 標準添付ライブラリの更新 (優れたもののみ)
* Logger
* Logger#level= はシンボルと文字列でログレベルを指定できるようになりました。(大文字・小文字を区別しません)
1169... -
NEWS for Ruby 2
. 4 . 0 (7.0) -
NEWS for Ruby 2.4.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
...inding#irb binding.pryと同じようにREPLのセッションを開始します。r56624.
* logger
* Logger.new のキーワード引数に level, progname, datetime_format, formatter を追加し、
Loggerインスタンス生成時に属性をセットできるようにしました... -
NEWS for Ruby 3
. 1 . 0 (7.0) -
NEWS for Ruby 3.1.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
...ritable は非推奨になりました。 18003
== 標準添付ライブラリの互換性
* ERB#initializeが-wオプションなしでもsafe_level以降の引数に警告されるようになりました。 14256
* lib/debug.rb が debug.gem に置き換えられました。
* lib/pp.rb...