هل من أحد يشرح لنا لماذا يجب تفادي دالة eval() في ال js !؟
لماذا من غير المحبذ استعمال دالة eval() ؟
بختصار لان الداله eval تقوم بتنفيذ سطر برمجي عباره عن نص string .. الخطر يكمن اذا كان هذا النص يتم ادخاله عن طريق المستخدم بطريقه او اخرى .. في هذه الحاله اذا قام الهاكر بالبحث في كودك عن الداله eval وادرك ان النص الذي يتم تنفيذه يدخل عبر المستخدم اذا يمكن تنفيذ اي كود يريده في الصفحه من هذا الكود سرقه الكوكيز مع ذالك للعلم في المتصفحات الجديده تم وضع طريقه تصعب على الهاكر امكانيه ارسال الكوكيز الى موقع اخر ..
مثال
var s = "alert('test');"+user_input;
eval (s);
أهلا، يمكنك استعمالها فهي مفيدة لكن خطورتها تكمن في ثغرتها بمعنى اغل ثغرات remote code execution تنتج بسببها واغفال المبرمج.
يمكن تنفيذ عدة اكواد استطيع تنفيذ اي اريد ابتداءا من رفع الشيل الى اختراق الموقع
لو وضع سؤاله في مجتمع خاطئ لصح تسليبك، لكنه وضع سؤاله في موقع نقاش وهذا جائز، يا أخي لعلّه لا يحب الأكاديمية أو ليس له حساب فيها! ثم لماذا الأكاديمية وليس اسأل رُند أو Stack overflow مثلًا؟
التعليقات