وزن eval () و ast.literal_eval () في Python Security
غالبًا ما تنشأ eval () ، وهي وظيفة python قوية ، كحل محتمل ، ولكن المخاوف تحيط بمخاطرها المحتملة. تتحول هذه المقالة إلى الاختلافات بين eval () و ast.literal_eval () ، وتسليط الضوء على آثار الأمان. هذا يعني أنه يمكن تنفيذ المدخلات الضارة قبل أن تتاح لك فرصة التخفيف منها. يوضح مقتطف الكود التالي هذا الضعف:datamap = eval ('إدخال ("قدم بعض البيانات هنا:'))
تقديم ast.literal_eval ()
يقوم بالتحقق من صحة المدخلات للتأكد من أنها تمثل بيثون حرفيًا ، مثل القاموس أو القائمة أو القمامة. إذا كان الإدخال لا يتناسب مع هذا التنسيق ، فإنه يثير استثناء ، ومنع رمز ضار من التشغيل.حاول: datamap = ast.literal_eval (إدخال ("قدم بعض البيانات هنا: ')) باستثناء ValueRror: إرجاع # تعامل مع إدخال غير صالح
datamap = eval(input('Provide some data here: '))يجب تجنب eval () بسبب إمكانية الاستغلال.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3