دمج عارض مستندات آمن: 7 ميزات أساسية غالبًا ما يغفل عنها مطورو الواجهة‑الأمامية
6‏/3‏/2026

دمج عارض مستندات آمن: 7 ميزات أساسية غالبًا ما يغفل عنها مطورو الواجهة‑الأمامية

تعرف على 7 ميزات أمان لا غنى عنها — التشفير، سياسات CSP، الإطارات المضمنة sandboxed، المصادقة بالتوكن، العلامات المائية، سجلات التدقيق، وأكثر — لتضمين عارض مستندات آمن.

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

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


1. تشفير من طرف إلى طرف لتدفق المستند

لماذا يهم

حتى إذا قمت بخدمة الملفات عبر HTTPS، يمكن لامتداد متصفح مخترق أو برنامج نصي خبيث أن يلتقط المستند الخام قبل أن يصل إلى العارض.

كيفية التنفيذ

الخطوةالإجراء
التشفير من جانب الخادمتشفير الملف (AES‑256‑GCM خيار قوي) قبل تخزينه أو بثه.
أمان النقلتسليم الكتلة المشفرة عبر TLS 1.3.
فك التشفير من جانب العميلتشغيل Web Worker يستقبل التدفق المشفر، يفك تشفيره في الذاكرة، ويغذي النص الصريح مباشرةً إلى لوحة الرسم للعارض.
لا تكشف المفتاح أبداًاحتفظ بمفتاح فك التشفير في توكن قصير العمر يُنشئه الخادم (انظر الميزة #4).

بحلول الوقت الذي يقوم فيه العارض بالعرض، لم يُكشف المستند مطلقًا كنص صريح على الشبكة أو في الخيط الرئيسي.


2. قائمة السماح لسياسة أمان المحتوى (CSP)

الخطر

سياسة CSP متساهلة تسمح للمهاجم بحقن نصوص خبيثة أو تحميل موارد غير موثوقة قد تقرأ بيانات لوحة الرسم للعارض.

نقاط رئيسية

  • ‘unsafe‑inline’ و ‘unsafe‑eval’ غير مسموح بهما للسكربتات.
  • يُسمح فقط ل CDN الخاص بالعارض (أو الحزمة المستضافة ذاتيًا) بخدمة جافاسكريبت.
  • تُقيد الإطارات إلى نطاق العارض الموثوق.

قائمة CSP محكمة تقلل بشكل كبير من سطح الهجوم للصفحة التي تستضيف التضمين.


3. العزل من نفس الأصل عبر iframe Sandbox

لماذا الـ sandbox؟

حتى مع CSP، قد تحاول صفحة مخترقة الوصول إلى DOM الخاص بالعارض. إن <iframe> المعزول يخلق قفصًا أمنيًا لا يمكن للصفحة المضيفة كسره دون إذن صريح.

علامات sandbox التي يجب تجنبها

  • allow-top-navigation – يمنع العارض من اختطاف النافذة العليا.
  • allow-popups – يحجب النوافذ المنبثقة غير المتوقعة التي قد تُستَخدم في التصيد.

إذا كان العارض بحاجة إلى التواصل مع الصفحة الأم (مثلاً لمزامنة الواجهة)، استخدم postMessage مع فحص صريح للأصل.


4. التحكم في الوصول القائم على التوكن

المشكلة مع الروابط المباشرة

الروابط العامة الثابتة تسمح لأي شخص يمتلك الرابط بتحميل الملف إلى الأبد.

بما أن التوكن يُوقع من جانب الخادم، فإن أي تعديل يُبطل الطلب، ويُرفض العارض التحميل.


5. العلامات المائية والتراكبات الديناميكية

الهدف

علامة مائية ديناميكية من جانب العميل تضيف طبقة من المساءلة دون تعديل الملف الأصلي.

نصائح التنفيذ

  • ارسم العلامة المائية على canvas overlay يعلو صفحات PDF.
  • استخدم بريد المستخدم الإلكتروني أو UUID عشوائي بحيث يكون كل مثال للعارض فريدًا.
  • فعّل أو عطل التراكب بعلامة بسيطة لتقليل الحمل على الأداء.

إذا ظهر مستند مسرب، يشير المعرف المدمج مباشرةً إلى المصدر.


6. قيود التحميل والطباعة

الإعدادات الافتراضية للمتصفح

معظم المتصفحات تُظهر قائمة سياق بزر الفأرة الأيمن يمكنها حفظ اللوحة كصورة، مما يصدّر الصفحة فعليًا.

ما يمكن للعارض فعله وما لا يمكنه

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

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


7. تسجيل التدقيق وربط الأحداث

قيمة الرؤية

حتى أقوى عارض مُقوَّى يمكن أن يُستَغل. تسجيل من فتح أي مستند، ومتى، وما الإجراءات التي نفّذها يخلق أثرًا جنائيًا.

مع السجلات الفورية يمكنك اكتشاف أنماط غير عادية—مثل مستخدم واحد يفتح عشرات ملفات PDF سرية في ثوانٍ—وتفعيل تنبيهات أو إلغاء تفويض.


الخلاصة

إن دمج عارض مستندات هو مسؤولية أمان، ليس مجرد واجهة مستخدم. التشفير لتدفق المستند، سياسة أمان المحتوى الصارمة، عزل sandbox iframe، التحكم في الوصول القائم على التوكن، العلامات المائية الديناميكية، قيود التصدير تُعامل كـ UX وليس كحماية، وتسجيل التدقيق هي ما يفرق بين تضمين يمكنك الدفاع عنه وآخر لا يمكن.

اثنان من هذه السبع خصائص هما لك بغض النظر عن العارض الذي تختاره: التفويض والتدقيق. لا مكوّن يمكنه اتخاذ هذا القرار نيابة عن مستأجرك.

هل أنت مستعد لبناء التضمين؟

  1. ابدأ من وثائق البائع للإصدار الذي تثبته. بالنسبة لـ Doconut، ذلك هو doconut.com — الحزم، أدلة الإعداد والعينات. نسخ مفاتيح التكوين من المقالات هو ما يسبب تعطل التكاملات عند الترقية.
  2. ضع قائمة التحقق ذات النقاط السبع في قالب طلب السحب حتى يحدث مراجعة الأمان قبل الدمج، لا بعد الحادث.
  3. اختبر الحالات السلبية أولًا: معرف مستند مستأجر آخر، جلسة منتهية الصلاحية، طلب مباشر إلى صفحة أو نقطة تصدير. هذه هي الاختبارات التي تكشف الثغرات الحقيقية.