Note: I do know
eval() is dangerous and can usually be replaced by something safe. My goal is to learn rather than find a solution to an existing problem (Besides, I will be replacing completely the eval in my program soon.)
I have a function
f() which uses
eval() (or something as dangerous) with data which I created and stored in
local_file on the machine running my program:
import local_file def f(str_to_eval): # code.... # .... eval(str_to_eval) # .... # .... return None a = f(local_file.some_str)
f() is safe to run since the strings I provide to it are my own.
However, if I ever decide to use it for something unsafe (e.g. user input) things could go terribly wrong. Also, if the
local_file stops being local then it would create a vulnerability since I would need to trust the machine that provides that file as well.
How should I ensure that I never "forget" that this function is unsafe to use (unless specific criteria are met)?