JavaScript is not enabled!...Please enable javascript in your browser

جافا سكريبت غير ممكن! ... الرجاء تفعيل الجافا سكريبت في متصفحك.

recent
احدث المشاركات
Accueil

مخاطر تضمين تطبيق الويب

مقدمة

بما انني بصدد نشر سكربتات محدثة لنشر النتائج - قد تكون نشرت وقت قراءتك - فكان لابد من طرح سؤال مهم لما ستم ايقاف التضمين في الاكواد الجديدة ؟

رغم ان عملية تضمين تطبيق الويب مهمة جدا داخل صفحاتك الخاصة او المقالات او حتى موقعك لما توفره من عملية اعادة التصميم للموقع او تفادي الخروج منه الا ان جوجل تصر على عدم تضمينه وايضا اظهار رسالة للزائر "أنشأ هذا التطبيق أحد مستخدمي "برمجة تطبيقات Google".

قد يكون التحذير واضح لكنني كنت ارى انه مبالغ فيه خصوصاً انني مثلا من صمم الصفحة او الموقع المضمن فيه التطبيق فقررت ان اسأل Gemini واليكم الملخص.


السؤال

ما هى المخاطر المتوقعة في حالة تضمين تطبيق الويب في صفحات اخرى؟

الإجابة

سؤال ممتاز وفي صميم أمان تطبيقات الويب!


عندما تحاول تضمين تطبيق ويب (مثل تطبيق Google Apps Script الخاص بك) في صفحة ويب أخرى باستخدام إطار (<iframe>)، فإنك تفتح الباب أمام بعض المخاطر الأمنية المحتملة. رسالة "script.google.com refused to connect" التي واجهتها هي في الواقع إجراء أمني يطبقه Google Apps Script بشكل افتراضي لمنع هذه المخاطر، خاصةً مخاطر Clickjacking.

إليك شرح للمخاطر الرئيسية المرتبطة بتضمين تطبيق ويب في صفحات أخرى:
  • Clickjacking (اختطاف النقرات):
كيف يعمل: هذا هو الخطر الأبرز الذي تمنعه Google Apps Script افتراضياً. يقوم موقع ويب خبيث بإنشاء صفحة شفافة (أو شبه شفافة) ووضعها فوق تطبيق الويب المضمن في الإطار. يتم تصميم الصفحة الخبيثة بحيث تبدو وكأنها شيء آخر تماماً، لكن عندما يحاول المستخدم النقر على عنصر معين في الصفحة الخبيثة الظاهر أمامه، فإنه في الحقيقة ينقر على شيء آخر في التطبيق المضمن تحته.
الخطر في سياق تطبيقك: يمكن للمهاجم تضمين صفحة البحث (index.html) لتطبيقك في موقعه. ثم يصمم واجهة وهمية فوقها ويخدع المستخدم (ربما عن طريق رسالة احتيالية) للنقر على زر يبدو بريئاً، بينما النقر في الواقع يتم على زر "عرض" في تطبيقك المضمن، بعد أن يكون المهاجم قد قام بملء حقول الصف ورقم الجلوس مسبقاً بقيم يختارها. إذا كان يمكن للمهاجم أيضاً رؤية محتوى الإطار (وهو ممكن في بعض الحالات أو مع ثغرات معينة)، فقد يتمكن من سرقة نتائج طالب معين.
  • UI Redressing (إعادة تصميم الواجهة):
هذا شبيه بـ Clickjacking. يقوم المهاجم بتغيير مظهر التطبيق المضمن باستخدام CSS أو طرق أخرى ليخدع المستخدم لتنفيذ إجراءات لم يكن يقصدها في التطبيق الأصلي.
Information Leakage (تسريب المعلومات):
في بعض السيناريوهات الأقل حماية (ليس بالضرورة مع وضع الحماية الصارم لـ Apps Script)، قد تتمكن الأكواد البرمجية (JavaScript) في الصفحة الأم التي تحتوي على الإطار من قراءة محتوى الإطار المضمن. إذا كان تطبيقك يعرض بيانات حساسة (مثل نتائج الطلاب)، فقد يتمكن موقع الويب الخبيث من قراءة هذه البيانات المعروضة وسرقتها. وضع الحماية SandboxMode.IFRAME وسياسة المصدر الواحد (Same-Origin Policy) في المتصفحات يقللان بشكل كبير من هذا الخطر في سياق Apps Script، لكن التضمين يظل نقطة ضعف محتملة إذا تم العثور على طريقة لتجاوز هذه الحماية.
  • Phishing (التصيد الاحتيالي):
يمكن لموقع ويب احتيالي أن يقلد تصميم موقع مدرستك أو مؤسستك تماماً. ثم يقوم بتضمين تطبيق النتائج الشرعي الخاص بك (إذا سمحت بذلك) داخل هذا الموقع المزيف. سيثق المستخدم في أن تطبيق النتائج يبدو حقيقياً وموجوداً في الموقع الصحيح، مما قد يجعله أكثر عرضة لتقديم معلومات حساسة أخرى في نماذج احتيالية موجودة على نفس الصفحة المزيفة خارج الإطار المضمن.

  • كيف تمنع Google Apps Script هذه المخاطر؟

رأس X-Frame-Options: كما ذكرت، تطبيق Google Apps Script يضيف افتراضياً رأس استجابة HTTP يسمى X-Frame-Options (عادةً بقيمة SAMEORIGIN أو DENY في سياقات معينة) يخبر المتصفح بمنع عرض هذه الصفحة داخل إطار (<iframe>) على نطاق آخر غير script.google.com نفسه. الخطأ "refused to connect" هو نتيجة مباشرة لهذا الإجراء الأمني.
Sandbox Mode (وضع الحماية): وضع الحماية مثل IFRAME (وهو الموصى به والذي تستخدمه) يضع قيودًا صارمة على الأكواد البرمجية التي تعمل داخل الإطار المضمن. هذا يقلل من قدرة الأكواد الخبيثة (إذا تمكنت من الوصول إلى داخل الإطار) على التفاعل مع الصفحة الأم أو الوصول إلى موارد خارجية بشكل غير مصرح به.

الخلاصة

المخاطر الرئيسية للتضمين تتعلق باحتيال المستخدم (Clickjacking، UI Redressing) وسرقة البيانات (إذا أمكن تجاوز الحماية). جوجل تتخذ إجراءات قوية (مثل X-Frame-Options) لمنع التضمين غير المصرح به في نطاقات أخرى بالتحديد للحماية من هذه المخاطر. ظهور خطأ "رفض الاتصال" كان في الواقع مؤشراً على أن هذه الحماية كانت تعمل.

عزيزي القارئ قد تسأل انت سؤال اخرى بما انني من صمم الصفحة ما المخاطرة ؟ الاجابة وباختصار استطيع معرفة رابط تطبيقك بسهولة من الموقع وايضا تقليد موقعك او استغلاله فيما سبق ذلك.

اذا كنت معجب بمحتوى المدونة يمكنك تحميل تطبيق اندوريد للمدونة من اعلى الصفحة لتتابع كل جديد وتكون هناك وسيلة تواصل بيننا.


حفظنا الله جميعا من كل شر ودمتم بخير
NomE-mailMessage