وعليكم السلام
امر eval يقوم بتحويل ماكتب بدالخه او ارسل له الى كود تنفيذي
راح اعطيك مثال بسيط
هذا كود مكتوب بلغة php بشكل عادي
كود PHP:
<?php
function mohdesign(){
echo "hello evil";
}
mohdesign();
?>
بسيط جدا عباره عن داله اسمها mohdesign وموجود داخله اطبع hello evil وبعد الداله نستدعيها
تعال نخلي eval هي اللي تنفذ الامر هذا بدون مانكتب الداله
كود PHP:
<?php
eval("function mohdesign(){echo \"hello evil\";} mohdesign();");
?>
نفس الامر ولكن eval هي اللي راح تكتبه بالاسكريبت
طبعا يطلقون مثل عليها هذه الداله وهو معروف
"eval is evil" اي امر eval هو شر
الامر هذا خطير جدا جدا لو اخطأ المبرمج في وضعه
مثلا لدينا هذا الامر
كود PHP:
<?php
eval("$msg");
?>
وال $msg مرسوله عن طريق ال header اما post او get
ممكن ننفذ عملية اختراق هنا بامر بسيط جدا كهذا "كمثال لا اريد التوضيح اكثر"
كود:
http://www.site.com/file.php?msg="include(file2.php);"
اذا عند تنفيذ الامر يصبح
كود:
//eval("$msg");
eval("include(file2.php);");
الامر له فوائد كثيره وخصوصا الاختصار في كتابة الاكواد والتنفيذ السريع
وكما قلت لازم المبرمج يهتم اكثر اذا اراد ان يستعمله
ارجو انها واضحه الان