From: matz@... (Yukihiro Matsumoto) Date: 1997-09-24T14:22:25+09:00 Subject: [ruby-list:4582] Re: Security まつもと ゆきひろです In message "[ruby-list:4579] Re: Security" on 97/09/24, "EGUCHI Osamu" writes: |えぐち です。 |> この辺に関しては次のリリースまでに対応します.対応予定は |> |> -I,-S,-s,-x,-e, script from stdin |> |> です.他に見落としはありますかね. | |殆どのオプションがグレーです。 ううむ.オプションそのものを止めた方が良いのかなあ.perlでは そこまでしていないようだが. | + -d デバグ情報の暴露 | + -y ソースコードの暴露 | + -v ruby で書かれていることの暴露 | + -w ソースコードの暴露 | + -c ソースコードの暴露 この辺はしょうがないと思います. | + -l 入出力結果への介入 | + -r 使用モジュールの変更 | + -i 不用意な rename() | + -F $FS への介入 | + -K 漢字コード依存部分への介入 | + -0 $RS への介入 この辺はまずそうですね. |結局 -[xXT] 以外はみんな何らかのセキュリティ上の問題を持っています。 |(-[xXT] が問題無いかは保証できません ^^;) perlは-xは止めていたような…. |基本的に、 |『おらぁソース見られてもへーきだぁ』 それが ruby ではないでしょうか. |> * setuidスクリプトではいくつかの危険な操作を行えない | * root以外の実行するsetuidスクリプトではいくつかの危険な操作を行えない |ですね。 そうなりますね. |この仕組みだと、String#taint も必要ありそうですね。 |正規表現をくぐらした後などで、汚しておきたくなりませんか? そうかも知れませんね.これ以上は ruby-dev にいきましょうか. |=== |ところで、関連のバグみつけました。 | % ruby -e '$SAFE=5' |で core-cump します。 |eval.c:backtrace() の ary_push() で Raise() して再帰になってます。 しまった.やはりレベル5は無理があったか. まつもと ゆきひろ /:|)