2011-06-22 24 views
2

私は今日の午後、ランダムな文字列を生成し、Perlのevalに渡すことで時間を過ごしてきました。スクリプトは、次の文字のみを含む文字列です。危険なテキストを評価するのは危険ですか?

+-*$_.,/\@()%=` 

統計的に有意なリスクがありますか?

注:私は"rm -rf /"のような引数を渡しません。

+0

「あまりにもローカライズされた」という文字の選択については、他の人の回答も聞きたいです。 – Tim

+0

___ .. @)+ $$ 'がやっていることの説明に興味があります。 – Rob

+0

@Rob:[ランダム出力](http://dump.gurka.se/perl-output.txt)( '___ .. @)+ $$'の)を参照してください。 ) – Tim

答えて

0

この質問にはっきりと答えると(つまり、実際の確率で)、おそらくChaitin's constantの境界が計算されず、計算できないと言われています。それで、あなたの質問に答えることは、おそらく(数学的に言えば)不可能です。

あなたが心配している場合、なぜPerlプロセスをサンドボックスに入れないのですか?

+0

私は正確な確率を心配していません。私が統計的有意性について書いた理由は、巨大なリストを作成し、それをスカラーコンテキストで評価し、数値をバイナリコードとして実行する方法があるかもしれないということです。それは本当のリスクではありません。 – Tim

+0

@Tim、正確な確率のない答えは推測であろう。何か悪いことをすることはまずありませんが、そうはいかないでしょうか?それはおそらく知らないでしょう。 – bdonlan

1

統計学者の観点から統計的に有意である。プログラマーの視点からはい。回避できるリスクのパーセンテージは多すぎます。

+0

確かにパーセンテージが重要です。 「統計的に有意義」とは、宇宙の熱の死よりも時間がかかるのではないかと心配しないということでした。プログラマの観点から、どのようなリスクがありましたか? – Tim

+0

申し訳ありません@Tim Nordenfur。私はあなたが与えた文字から危険な声明を作成するために、その良いperlプログラマーではない。しかし、私は、危険な声明を作成するチャンスが非常に低い場合であっても、そのようなプログラムを実行させることを躊躇していることを示唆しています。 –

+0

あなたは隕石を恐れていますか? :)バックアップされたデータを失う10〜-100のリスクは、サンドボックスを構築するのに数分を費やすことを正当化するものではありません。 – Tim

1

$!は、プラットフォームやロケールによってさまざまな文字列に解決できます。だからおそらく何か

eval "$!=$$/$.,`$!`" 

はいたずらの可能性があります。

+0

ありがとうございました。私は質問に '!'と書いていませんでしたが、これは私がとにかく望んでいたものです。 – Tim

+0

'!'彼のサンプルストリングで。私は同意するが、シェルへのエクスポージャーは危険である。特に、プロセスやファイルシステムへの密接なリンクとともに、新しいシンタックス(sh、bash、msdosなど)が可能になるからだ。別の問題もあります。 $ _や$ /のような特別な変数は、このテストがより大きいスクリプトの一部として実行されていると判明すれば、プログラムの動作を遠くから変更する可能性があります。さらに、$ _と$ /は、evalがループ内で発生した場合、状態マシンのアキュムレータとレジスタを提供します。 //正規表現も提供します。 – DavidO

+0

@DavidO:ラッパープログラムを変更する能力は注目に値するでしょう。 regexesはDoS以外の何らかの脆弱性ですか? – Tim

関連する問題