يعمل ملف JavaScript مصغر كما هو متوقع، لكن build أرفق معه source map تشير إلى ملفات ومجلدات تطويرية. أدوات مثل Chrome DevTools تستخدم هذه الخرائط لإظهار المصدر الأصلي أثناء التنقيح، كما تشرح وثائق Chrome. مشروع تخرج الأمن السيبراني يبني مدققاً محلياً يربط ملفات الإصدار بخريطة المصدر ويكشف أسماء المسارات والمصادر المضمّنة وما إذا كانت خريطة قابلة للوصول ضمن مجلد التسليم. وجود الخريطة ليس ثغرة تلقائياً؛ قد يكون قراراً مقصوداً لتسهيل تصحيح تطبيق عام. الأداة تعرض الأدلة كي يختار مالك المشروع سياسة نشر مناسبة.

وتناسب الفكرة مشاريع تخرج الأمن السيبراني عندما يحدد الفريق نطاقاً صغيراً، ويعرض حالات النجاح والفشل في تقرير يمكن للمشرف إعادة تشغيله.

افصل بين ما في المستودع وما وصل للحزمة

حدد مجلد build محلياً يحتوي ملفات ثابتة مصطنعة، ولا تمرر نطاقاً عاماً للفحص. اقرأ manifest أو قائمة ملفات حزمة، وابحث عن تعليق sourceMappingURL داخل JS وCSS. خزّن قائمة الملفات النابعة من build دون فتح secrets أو ملفات بيئة. إذا كانت الخريطة remote URL، أظهر الرابط فقط ولا تزره آلياً في النسخة الأولية؛ اجعل التحليل static. هذه الحدود تمنع أداة التخرج من أن تتحول إلى scanner عشوائي. ضع fixtures لمصدر مرخص للنشر وآخر يحتوي مساراً محلياً مثل workspace/home حتى تختبر تمييز أثر المعلومات.

حلل بنية الخريطة لا تبحث عن كلمة فقط

تصف مواصفة Source Map حقولاً مثل version وsources وnames وmappings، وقد يوجد sourcesContent مضمن يحوي النص المصدر. تحقق من JSON أولاً ومن version المتوقعة، ثم اعرض عدد المصادر وامتداداتها والمسارات النسبية والمطلقة ومقاطع source content. لا تفسر mappings بنفسك كي تقرر صحة الشيفرة؛ هدف النسخة هو جرد التعرض لا إعادة بناء debugger. إذا كان JSON معطوباً أو كبيراً جداً، ارفضه مع خطأ واضح وحد أقصى للحجم.

صنف النتائج بحسب الحساسية والسياق

أظهر ملف الخريطة كعنصر، وتحته المصدر، ومسار المصدر بعد تطبيعه، وهل نصه مضمن، وهل يحتوي كلمات عالية الخطورة مثل token أو password. هذه الكلمات مجرد إشارة لمراجعة بشرية، وليست إثبات سر. لا تحفظ قيمة كاملة مشتبه بها داخل التقرير؛ اعرض اسم الحقل ومقتطفاً محجوباً إن لزم. كذلك قد تكشف أسماء الملفات بنية مستودع أو أسماء وحدات داخلية دون أن تحتوي بيانات اعتماد. فرّق بين ملف source map مرفق عن قصد لبيئة staging، وملف يظهر ضمن artifact الإنتاج من غير قرار موثق.

اربط التدقيق بنقطة الإصدار

شغل الفاحص بعد البناء وقبل الحزمة النهائية، واحفظ hash للملف ونسخة أداة البناء ليعرف الفريق لأي إصدار تعود النتيجة. ضع ملف سياسة يحدد المجلدات التي يسمح فيها بخرائط التطوير، ثم اجعل الحالات غير المطابقة تحذر أو تفشل وفق قرار الفريق. لا تحذف خريطة المصدر تلقائياً قبل أن يعرف المطورون أثر ذلك على تصحيح production؛ بعض المؤسسات ترفع الخرائط إلى خدمة خاصة لا إلى خادم الموقع. القيمة في جعل مكانها مقصوداً، لا في فرض منع شامل على كل المشاريع.

اختبر طرق الالتفاف والملفات الناقصة

صمم fixtures لخريطة سليمة، تعليق يشير إلى ملف غير موجود، sourcesContent غير موجود، مسار مطلق، URL خارجي، JSON كبير، وحقل غريب. يجب أن يفرق التقرير بين source map المفقود والخريطة التي لا يمكن قراءتها والخريطة التي تحتوي المصدر. اختبر ملفات .map غير المشار إليها بتعليق وملفات تشير إليها أصول CSS؛ الفحص لا ينبغي أن يعتمد على الامتداد وحده. قارن قائمة نتائج الفاحص مع جرد يدوي صغير، وسجل false positives. لا تعد بإيجاد كل سر؛ التجزئة أو الترميز أو أسماء المتغيرات قد تخفي الدلالة عن البحث البسيط.

ما الذي تعنيه النتيجة الأمنية؟

تساعد الخرائط المهاجم أو المراجع على فهم أسماء ومسارات الشيفرة، لكنها لا تمنح صلاحية تنفيذ تلقائية ولا تثبت وجود خلل. لا تسحب ملفات من عنوان عشوائي، ولا تعرض التقرير علناً. احتفظ به داخل مجلد build غير المنشور، وامنع الملفات من أن تتضمن مسارات حساب المستخدم إن أمكن. دليل OWASP WSTG يناقش جمع المعلومات من منظور فحص الويب؛ لا يعني ذلك أن كل ملاحظة اكتشاف ثغرة مؤكدة.

مخرجات مراجعة قابلة للتدقيق

يسلم الطالب أداة CLI أو صفحة محلية، fixtures، تقرير JSON وقراراً موثقاً لكل خريطة: نشر، نقل إلى مخزن خاص، أو استثناء معلل. اربط العمل بنطاق مشاريع التخرج وخدمة تطوير المواقع والتطبيقات. لا يفحص المشروع الشيفرة بحثاً عن جميع الأسرار ولا يغني عن مراجعة إعدادات المستودع. معيار النجاح أن يعرف عضو الفريق ما الذي سيصل ضمن artifact النهائي وأن يستطيع إعادة الجرد بعد كل build.

المصادر

مراجعة المصادر: .

اختبار المثال وحدوده

الحزمة التجريبية تصنع محلياً من ملفات تعليمية؛ لا يزحف الفاحص لمواقع عامة ولا يرفع نتائج المشروع إلى خدمة خارجية.

مقالات ذات صلة

الخدمة المرتبطة: تطوير المواقع والتطبيقات والأنظمة المخصصة.

أرسل متطلبات مشروعك