الأمان

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

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

Abundera QR تطبيق صفحة واحدة ثابت يُقدَّم من Cloudflare Pages. لا يوجد خادم تطبيقات، ولا قاعدة بيانات، ولا حسابات مستخدمين، ولا مصادقة، ولا نقاط نهاية API، ولا أي مسار كود خلفي يعالج بيانات المستخدم. كل عملية توليد وتشفير وفحص وعرض لرمز QR تعمل بالكامل داخل متصفحك.

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

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

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

السياسة الحالية (يمكن التحقق منها في رؤوس الاستجابة لأي طلب):

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

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

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

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

Service Worker

يخزن Service Worker لدينا (site/sw.js) مؤقتًا الأصول من المصدر ذاته فقط. يرفض معالج الجلب صراحةً الطلبات عبر المصادر والأساليب غير GET, يمكنك قراءة المنطق على GitHub. تُغلَّف عمليات الكتابة في الذاكرة المؤقتة بـ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-04-19. المراجعة القادمة: 2026-07-19.