একটি ফাংশন ডেটা 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()
বিপজ্জনক এবং সাধারণত নিরাপদ কিছু দ্বারা প্রতিস্থাপন করা যেতে পারে।