एक फ़ंक्शन डेटा के साथ (या कुछ खतरनाक के रूप में) 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()
खतरनाक है और आमतौर पर कुछ सुरक्षित द्वारा प्रतिस्थापित किया जा सकता है।