السلام عليكــم ورحمـة الله وبركاتــه
بســم الله الـرحمــن الرحيــم
إخواني لقد بدأنا سلسلتنا بموضوع بسيط جدا ومهم لأننا سوف نتابع هذه السلسلة باعتماده كمرجع نحسنه سويا
ولقد تعمدت ترك كثير من الثغرات فيه لكي يمكننا سدها سويا ولمعرفة الأخطر المتوقعة
في هذا الدرس سنكتشف أول ثغرة وهي عدم استعمالنا ل session للتأكد من أن المستخدم قد مر فعلا على صفحة التحقق أم تجاوزها مباشرة بالدخول للصفحة الأولى المحمية فرضا
حاول أن تكتب في المتصفح عنوان الصفحة المحمية مباشرة
http://127.0.0.1/exemple/premierpage.php
لقد تم اختراق موقعنا وهذا لسبب بسيط وهو أننا لم نتأكد عند هذه الصفحة انه تم فعلا المرور عبر صفحة التحقق
الحل يجب إضافة متغير في session نعتمده كشاهد مرور يتم إنشائه عند التحقق من هوية المستخدم وبالتالي سوف يتغير كود Control.php ولكن بشكل بسيط بإضافة متغير ل session
كود صفحة Control.php
<?php
session_start();
session_destroy();
session_start();
// Connexion au serveur
include_once("connexion.php");
$login= $_POST['login'] ;
$password= $_POST['password'] ;
$query = " SELECT * FROM user where login_user= '$login' and password_user= '$password' ";
$result = mysql_query($query);
if ($f=mysql_fetch_array($result)) {
header('Location: premierpage.php');
$_SESSION['email'] =$f['email_user'];
$_SESSION['name'] =$f['name_user'];
exit;
}else {
header('Location: index.html');
exit;
}
?>،
ونضيف أيضا تحقق عند صفحة premierpage.php من وجود المتغير وفي حالة عدم وجوده يتم تحويله إلى الصفحة الأولى
كود صفحة
premierpage.php
<?php
session_start();
if(empty($_SESSION['name'])){
header('Location: index.html');
exit;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>premierpage</title>
</head>
<?php echo $_SESSION['name'] ?>
<body>
</body>
</html>ها هو الدرس الثاني قد تم بتوفيق من الله. إن استطعت أن تقوم بإعادته بمفردك فمبارك لك دخولك عالم حماية المواقع لكن لاتزال الطريق طويلة فشمر على ساعديك.
وجد ملف مرفق يحتوي على مواد هذا الدرس

