関数f()
は、プログラムを実行eval()
しlocal_file
ているマシンに作成して保存したデータを使用します(または危険なものです)。
import local_file
def f(str_to_eval):
# code....
# ....
eval(str_to_eval)
# ....
# ....
return None
a = f(local_file.some_str)
f()
私が提供する文字列は自分のものなので、実行しても安全です。
しかし、私がこれを安全ではないもの(ユーザー入力など)に使用することを決定した場合、事態はひどく間違ったものになる可能性があります。また、local_file
停止がローカルになると、そのファイルを提供するマシンも信頼する必要があるため、脆弱性が発生します。
(特定の基準が満たされない限り)この関数の使用が安全でないことを「忘れない」ようにするにはどうすればよいですか?
注:eval()
危険であり、通常は安全なものに置き換えることができます。