أي لغات البرمجة تعتبر اكثر امانا من ناحية انها سوف تجبر المتعلم على ان يتعلم الاساسيات بشكل صحيح، واكثرهم انسيابية من ناحية ان الشخص اذا تعلمها فانها ستلبي له مطالب عدة وليس بحاجة على المستوى القريب ان ينتقل الى لغة اخرى؟
أي لغة أكثر أماناً وأكثر انسيابية للتعلم؟
التعليق السابق
ليست ثغرة بقدر ما هي عيب في التصميم. إن الأصل هو عدم الحماية والمبرمج عليه أن تضع مكان الكود غير الآمن
<h1>Hello <?php echo $name ?>!</h1>
الكود الآمن التالي
<h1>Hello <?php echo htmlspecialchars($name, ENT_QUOTES) ?>!</h1>
ومكان الكود غير الآمن التالي
$mysqli->query("INSERT INTO test(id, first_name, last_name) VALUES (1, '$first_name', '$last_name')");
بالكود الآمن التالي
$params=array();
$params[':first_name']='\''.$mysqli->real_escape_string($first_name).'\'';
$params[':last_name']='\''.$mysqli->real_escape_string($last_name).'\'';
$mysqli->query(str_replace(array_keys($params), array_values($params), 'INSERT INTO test(id, first_name, last_name) VALUES (1, :first_name, :last_name)'));
الكود الآمن أعلاه لن تجده في الوثائق وهو أقرب لحل إلتفافي منه إلى مكتبة آمنة.
التعليقات