|
eval(イーバル)はいくつかのプログラミング言語が持つ、文字列を式として評価する関数、または複数の文をプログラム中のあるコンテキストで実行するサブルーチンである。 eval の類の機能はコンパイラ言語よりもインタプリタ言語でより一般的である。なぜならコンパイラ言語でこのような機能を実現するには、プログラム自体に言語処理系や(変数名などの)実行時情報を埋め込む必要があるからである。eval に近い機能を実現しているコンパイラ言語も存在する。 == セキュリティ上のリスク == 信頼されないソースからのデータを eval するときには特に注意が必要である。例としてインターネット上からデータを得る get_data() 関数を考える。次の擬似コードのようなプログラムは潜在的に危険である。data = get_data() foo = eval(data) 攻撃者がこのプログラムに例えば "delete_system_files()" という文字列を与えることができると、delete_system_files() 関数が実行されてしまい、重要なファイルが消されてしまうかもしれない。これを防ぐためには、eval される文字列はすべてエスケープしたり、潜在的に危険な機能を利用できないようにして実行するなどの対策が必要となる。プログラミング言語によっては、外部から入力されたデータを「汚染されている」として印をつけるものもある。抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「Eval」の詳細全文を読む スポンサード リンク
|