الأمان

نموذج أماننا في جملة واحدة: لا يوجد شيء على الخادم يمكن مهاجمته. كل ما يلي قابل للتحقق من DevTools لديك.

البنية التقنية

المولّد تطبيق صفحة واحدة ثابت يُقدَّم من Cloudflare Pages: لا حسابات مستخدمين، ولا مصادقة، ولا أي مسار كود خلفي في أي مكان في تدفق التوليد. كل عملية توليد وتشفير وفحص وعرض لرمز QR تعمل بالكامل داخل متصفحك. توجد إلى جانبه نقطة نهاية واحدة صغيرة بلا خادم دائم، وهي مُدرجة هنا لا مخفية: /api/contact (نموذج التواصل، الذي يخزّن ما تُرسله في Cloudflare D1 ويرسله إلينا بالبريد الإلكتروني). لا تُستدعى أثناء إنشاء رمز QR؛ فاحص أمان الروابط منتج منفصل على check.qr.abundera.ai. التحقق من أمان رمز QR

نموذج التهديد

بما أن المولّد لا يجمع ولا يخزن ولا ينقل أي بيانات مستخدم (نقطتا النهاية أعلاه تعالجان فقط ما تُرسله إليهما صراحةً)، فإن أكثر تهديدات تطبيقات الويب شيوعًا, سرقة بيانات الاعتماد، واختراق قواعد البيانات، واختطاف الجلسات، والحقن من جانب الخادم, لا تنطبق عليه. المساحة المتبقية للهجوم هي حزمة الأصول الثابتة (HTML وCSS وJavaScript) المقدَّمة من مصدرنا. نصمم بافتراض:

سياسة أمان المحتوى, بحسب كل توجيه

السياسة أدناه تُقرأ من ملف _headers المنشور عند بناء هذه الصفحة، لذا لا يمكن أن تنحرف عمّا يرسله الطرف الطرفي. تحقّق منها في رؤوس الاستجابة لأي طلب.

Content-Security-Policy:
  default-src 'self';
  script-src 'self' https://abundera.ai 'wasm-unsafe-eval' https://challenges.cloudflare.com;
  worker-src 'self' blob:;
  style-src 'self' 'unsafe-inline' https://abundera.ai;
  font-src 'self';
  img-src 'self' data: blob: https:;
  connect-src 'self' https: https://challenges.cloudflare.com;
  frame-src 'self' https://challenges.cloudflare.com;
  frame-ancestors 'none';
  base-uri 'self';
  form-action 'self'

ما يتيحه كل توجيه وأين يُقدِّم تنازلًا:

ما لا تستطيع CSP فعله

تحدّ CSP من الأماكن التي يُحمِّل منها المتصفح الكود. إنها لا تفحص ما يفعله الكود المُحمَّل. لو تعرّض مصدرنا للاختراق، وهو أول بند في نموذج التهديد، فسيعمل سكريبت المهاجم بنفس صلاحياتنا، بما في ذلك تخفيفات connect-src وimg-src أعلاه. دفاعاتنا ضد ذلك تقع فوق CSP: تخرج عمليات النشر عبر حساب Cloudflare واحد بتوكنات محدودة النطاق، وأسماء ملفات الأصول مُجزّأة بالمحتوى بحيث يغيّر أي ملف مُستبدَل كل عنوان يشير إليه، ويخزّن عامل الخدمة مؤقتًا استجابات GET من نفس المصدر فقط. يصف البيان الموقع كما شُحن. إنه ليس ادعاءً بأن لا صفحة ويب يمكنها إرسال بيانات إلى أي مكان أبدًا، ونفضّل أن تحاسبنا على العبارة الأضيق القابلة للتحقق.

تسري سياسات CSP مختلفة على /bio/* (تخفيف img-src للصور الرمزية المقدَّمة من المستخدم) و/embed/* (تخفيف frame-ancestors للتضمين المقصود). كلاهما موثَّق في site/_headers.

رؤوس النقل والإطارات

Service Worker

يخزن Service Worker لدينا (site/sw.js) مؤقتًا الأصول من المصدر ذاته فقط. يرفض معالج الجلب صراحةً الطلبات عبر المصادر والأساليب غير GET, يمكنك قراءة المنطق في /sw.js (المصدر يُشحن غير مُصغَّر بما يكفي لمتابعته). تُغلَّف عمليات الكتابة في الذاكرة المؤقتة بـevent.waitUntil() لئلا تُحذف في منتصف التنقل.

تعقيم المدخلات

كل مسار عرض يقبل مدخلات المستخدم يعاملها كنص غير موثوق:

جلب الصور عبر المصادر

عندما يلصق المستخدم رابط https: كصورة vCard أو شعار، يجلبه المتصفح وفق CORS وقائمة سماح img-src في CSP. تُعرض الصورة في canvas. لا تصبح DOM حيًّا، ولا تُنفَّذ كود، ولا تصل إلى مصدرنا, الجلب يتم من المتصفح إلى الصورة البعيدة مباشرةً، والنتيجة تُرسم من جانب العميل. مهاجم يتحكم في رابط صورة بعيدة يمكنه تتبع تحميل الرابط (سطر سجل في خادمه) لكن لا يستطيع تسريب أي شيء من صفحتنا.

تكامل الموارد الفرعية (SRI)

جميع JavaScript وCSS التي نشحنها من المصدر ذاته. لا نحمِّل سكريبتات أو أوراق أنماط تابعة لجهات خارجية، لذا لا تنطبق تجزئات SRI. إن حمَّلنا أصلًا تابعًا لجهة خارجية مستقبلًا، سنضيف سمة integrity عليه ونوثِّق عملية تحديث التجزئة في هذه الصفحة.

الإبلاغ عن ثغرة أمنية

إن اكتشفت مشكلة أمنية تؤثر على Abundera QR, سواء في كودنا أو في عملية النشر أو في إحدى التبعيات التي نشحنها, يرجى الإبلاغ عنها بشكل خاص إلى security@abundera.ai. نهدف إلى الفرز خلال 72 ساعة. يمكنك أيضًا التواصل معنا عبر تفاصيل الاتصال في ملف /.well-known/security.txt.

لا برنامج مكافآت (حتى الآن)

لا نقدم مكافآت مدفوعة حاليًا، لكن كل تقرير صحيح مؤكَّد يحصل على ذكر في سجل التغييرات وشكرنا العلني.

التحقق من كل ما سبق

كل ادعاء في هذه الصفحة قابل للتحقق من DevTools المتصفح دون الحاجة إلى الوثوق بنا:

التواصل

الإفصاحات الأمنية: security@abundera.ai

آخر تحديث: 2026-09-03. المراجعة القادمة: 2026-12-03.