Fungsi f()
menggunakan eval()
(atau sesuatu yang berbahaya) dengan data yang saya buat dan simpan di local_file
dalam mesin yang menjalankan program saya:
import local_file
def f(str_to_eval):
# code....
# ....
eval(str_to_eval)
# ....
# ....
return None
a = f(local_file.some_str)
f()
aman untuk dijalankan karena string yang saya berikan padanya adalah milik saya.
Namun, jika saya memutuskan untuk menggunakannya untuk sesuatu yang tidak aman (mis. Input pengguna) hal-hal bisa jadi sangat salah . Juga, jika local_file
berhenti menjadi lokal maka itu akan membuat kerentanan karena saya perlu mempercayai mesin yang menyediakan file itu juga.
Bagaimana saya harus memastikan bahwa saya tidak pernah "lupa" bahwa fungsi ini tidak aman untuk digunakan (kecuali kriteria tertentu terpenuhi)?
Catatan: eval()
berbahaya dan biasanya bisa diganti dengan sesuatu yang aman.