Bir işlev f()
, programımı çalıştıran makinede eval()
oluşturduğum ve sakladığım verilerle (veya tehlikeli bir şeyle) kullanır local_file
:
import local_file
def f(str_to_eval):
# code....
# ....
eval(str_to_eval)
# ....
# ....
return None
a = f(local_file.some_str)
f()
ona sağladığım dizeler benim olduğu için çalıştırmak güvenlidir.
Ancak, güvenli olmayan bir şey (örneğin kullanıcı girişi) için kullanmaya karar verirsem işler çok yanlış gidebilir . Ayrıca, local_file
yerel olarak durursa, bu dosyayı da sağlayan makineye güvenmem gerektiğinden bir güvenlik açığı oluşturur.
Bu işlevin kullanımının güvenli olmadığını (belirli ölçütler karşılanmadığı sürece) asla "unutmamamı" nasıl sağlarım?
Not: eval()
tehlikelidir ve genellikle güvenli bir şeyle değiştirilebilir.