"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > Eval () बनाम ast.literal_eval (): उपयोगकर्ता इनपुट के लिए कौन सा पायथन फ़ंक्शन सुरक्षित है?

Eval () बनाम ast.literal_eval (): उपयोगकर्ता इनपुट के लिए कौन सा पायथन फ़ंक्शन सुरक्षित है?

2025-03-26 को पोस्ट किया गया
ब्राउज़ करें:770

] eval (), एक शक्तिशाली पायथन फ़ंक्शन, अक्सर एक संभावित समाधान के रूप में उत्पन्न होता है, लेकिन चिंताएं इसके संभावित जोखिमों को घेरती हैं। यह लेख eval () और ast.literal_eval () के बीच के अंतरों में तल्लीन करता है, उनके सुरक्षा निहितार्थों को उजागर करता है। इसका मतलब है कि दुर्भावनापूर्ण इनपुट को निष्पादित किया जा सकता है इससे पहले कि आपको इसे कम करने का मौका मिले। निम्न कोड स्निपेट इस भेद्यता को प्रदर्शित करता है:

Eval() vs. ast.literal_eval(): Which Python Function Is Safer for User Input?
datamap = eval (इनपुट ('कुछ डेटा प्रदान करें:'))

का परिचय ast.literal_eval ()

यह सुनिश्चित करने के लिए इनपुट को मान्य करता है कि यह एक पायथन शाब्दिक का प्रतिनिधित्व करता है, जैसे कि एक शब्दकोश, सूची या टपल। यदि इनपुट इस प्रारूप में फिट नहीं होता है, तो यह एक अपवाद को उठाता है, दुर्भावनापूर्ण कोड को चलने से रोकता है।

प्रयास करें: datamap = ast.literal_eval (इनपुट ('कुछ डेटा यहां प्रदान करें:')) ValueError को छोड़कर: वापसी # संभाल अमान्य इनपुट

सर्वोत्तम प्रथाओं

datamap = eval(input('Provide some data here: '))
सुरक्षा कारणों से, जब भी संभव हो, जब भी संभव हो, विशेष रूप से अविश्वसनीय या अनिश्चित इनपुट के साथ काम करने के लिए यह अत्यधिक अनुशंसित है। Eval () को शोषण की अपनी क्षमता के कारण बचा जाना चाहिए।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3