私は今日の午後、ランダムな文字列を生成し、Perlのeval
に渡すことで時間を過ごしてきました。スクリプトは、次の文字のみを含む文字列です。危険なテキストを評価するのは危険ですか?
+-*$_.,/\@()%=`
統計的に有意なリスクがありますか?
注:私は"rm -rf /"
のような引数を渡しません。
私は今日の午後、ランダムな文字列を生成し、Perlのeval
に渡すことで時間を過ごしてきました。スクリプトは、次の文字のみを含む文字列です。危険なテキストを評価するのは危険ですか?
+-*$_.,/\@()%=`
統計的に有意なリスクがありますか?
注:私は"rm -rf /"
のような引数を渡しません。
この質問にはっきりと答えると(つまり、実際の確率で)、おそらくChaitin's constantの境界が計算されず、計算できないと言われています。それで、あなたの質問に答えることは、おそらく(数学的に言えば)不可能です。
あなたが心配している場合、なぜPerlプロセスをサンドボックスに入れないのですか?
統計学者の観点から統計的に有意である。プログラマーの視点からはい。回避できるリスクのパーセンテージは多すぎます。
確かにパーセンテージが重要です。 「統計的に有意義」とは、宇宙の熱の死よりも時間がかかるのではないかと心配しないということでした。プログラマの観点から、どのようなリスクがありましたか? – Tim
申し訳ありません@Tim Nordenfur。私はあなたが与えた文字から危険な声明を作成するために、その良いperlプログラマーではない。しかし、私は、危険な声明を作成するチャンスが非常に低い場合であっても、そのようなプログラムを実行させることを躊躇していることを示唆しています。 –
あなたは隕石を恐れていますか? :)バックアップされたデータを失う10〜-100のリスクは、サンドボックスを構築するのに数分を費やすことを正当化するものではありません。 – Tim
$!
は、プラットフォームやロケールによってさまざまな文字列に解決できます。だからおそらく何か
eval "$!=$$/$.,`$!`"
はいたずらの可能性があります。
ありがとうございました。私は質問に '!'と書いていませんでしたが、これは私がとにかく望んでいたものです。 – Tim
'!'彼のサンプルストリングで。私は同意するが、シェルへのエクスポージャーは危険である。特に、プロセスやファイルシステムへの密接なリンクとともに、新しいシンタックス(sh、bash、msdosなど)が可能になるからだ。別の問題もあります。 $ _や$ /のような特別な変数は、このテストがより大きいスクリプトの一部として実行されていると判明すれば、プログラムの動作を遠くから変更する可能性があります。さらに、$ _と$ /は、evalがループ内で発生した場合、状態マシンのアキュムレータとレジスタを提供します。 //正規表現も提供します。 – DavidO
@DavidO:ラッパープログラムを変更する能力は注目に値するでしょう。 regexesはDoS以外の何らかの脆弱性ですか? – Tim
「あまりにもローカライズされた」という文字の選択については、他の人の回答も聞きたいです。 – Tim
___ .. @)+ $$ 'がやっていることの説明に興味があります。 – Rob
@Rob:[ランダム出力](http://dump.gurka.se/perl-output.txt)( '___ .. @)+ $$'の)を参照してください。 ) – Tim