Interpreter Process
インタプリタを使用して与えられたスクリプトを実行・演算・評価します
名前空間 | Alice.Interpreter |
アセンブリ | Alice.Runtime.dll |
サポート | AliceScript1 |
警告:文字列からAliceScriptを実行することは、非常に大きな安全上の懸念を伴います。この関数を使用することで悪意のある者が任意のコードを実行することが容易になります。下記の非推奨の項目を参照してください。
説明
variable Interpreter_Process(string script,string filename="",bool mainFile=false);
引数
script 実行したいスクリプトを含むテキスト
filename 例外発生時等に処理するためのスクリプトに設定される名前
bool mainFile メインファイルとして処理するか否か
戻り値
variable スクリプトからの戻り値
非推奨
Interpreter_Processは潜在的にセキュリティのリスクを含みます。次の例のようなコードは非常に危険です。
script = web_download_text("http://localhost/wrong.alice");
foo = Interpreter_Process(script);
悪意のある者によって"http://localhost/wrong.alice"が例えば(そのような関数が存在しないとはいえ)delete_system()
のように改ざんされているとすると、実際にdelete_system()
関数が実行されてしまい、システムが削除されてしまう可能性があります。
これを防ぐためにはInterpreter_Processに渡される文字列はすべてエスケープしたものを使用するか、あるいはこの関数を使用しないべきです。