انتقل إلى محتوى الدرس

Reloading Pages and URL Validation تحديث الصفحة وأمان الروابط

أتقن التعامل مع كائن الرابط window.location في JavaScript: فكك أجزاء العنوان وحلل الاستعلامات عبر URLSearchParams وقارن بين assign وreplace واحمِ تطبيقك من التوجيه المفتوح.
5 صفوف تعليمية
جافا سكريبت
4,307 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

يُعيد استدعاء window.location.reload() تحميل الصفحة الحالية من جديد (وتُستدعى قياسياً بلا أي معاملات لأن المتصفحات الحديثة أهملت المعامل القديم true).

قاعدة أمنية حاسمة (الوقاية من التوجيه المفتوح وDOM XSS): تقرأ كثير من المواقع معامل عودة بعد تسجيل الدخول مثل ?returnTo=/profile لتوجيه المستخدم إليه؛ فإذا زوّر مهاجم الرابط ليصبح ?returnTo=https://phish.example (ثغرة Open Redirect) أو ?returnTo=javascript:alert(1) (ثغرة DOM XSS)، فإن التوجيه الأعمى يوقع الضحية في الفخ فوراً! حلّل المسار دائماً عبر new URL(target, window.location.origin) واشترط تطابق الأصل parsed.origin === window.location.origin.

الصف 2 كود برمجي
JavaScript
function safeReturnPath(rawTarget) {
  try {
    const base = 'https://closetag.com';
    const u = new URL(rawTarget, base);
    return u.origin === base ? u.pathname : '/home';
  } catch (err) {
    return '/home';
  }
}
document.getElementById('val-out').textContent =
  'Valid: ' + safeReturnPath('/courses') + '\n' +
  'Blocked: ' + safeReturnPath('https://evil.test/login');
الصف 3 ملاحظة هامة
الصف 4 ملاحظة هامة
الصف 5 ملاحظة هامة
خلاصة المعرفة ومحطة الانتقال

ملخص الدرس

حصاد الدرس

مراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي

ماذا تعلّمت في هذا الدرس؟

فككت في هذا الدرس أجزاء العنوان عبر خصائص window.location، وحللت معاملات البحث بأمان عبر URLSearchParams، وقارنت بين assign() وreplace()، وحصّنت التوجيه ضد ثغرتي Open Redirect وروابط javascript: عبر فحص origin. الخطوة التالية: انتقل الآن إلى درس «كائن سجل التصفح window history في JavaScript» للتنقل عبر خطوات الجلسة بدوال back() وforward() وgo().