سیکیورٹی

ہمارا سیکیورٹی ماڈل ایک جملے میں: سرور پر حملہ کرنے کے لیے کچھ ہے ہی نہیں۔ نیچے دی گئی ہر بات آپ کے DevTools سے قابل تصدیق ہے۔

آرکیٹیکچر

Abundera QR ایک اسٹیٹک سنگل پیج ایپلیکیشن ہے جو Cloudflare Pages سے پیش کی جاتی ہے۔ کوئی ایپلیکیشن سرور نہیں، کوئی ڈیٹابیس نہیں، کوئی یوزر اکاؤنٹ نہیں، کوئی تصدیق نہیں، کوئی API اینڈ پوائنٹ نہیں، اور کوئی بیک اینڈ کوڈ پاتھ نہیں جو یوزر ڈیٹا کو پروسیس کرے۔ ہر QR جنریشن، انکوڈنگ، اسکیننگ اور رینڈرنگ آپریشن مکمل طور پر آپ کے براؤزر کے اندر چلتا ہے۔

خطرے کا ماڈل

چونکہ ہم کوئی یوزر ڈیٹا جمع، ذخیرہ یا منتقل نہیں کرتے، ویب ایپ کے سب سے عام خطرات, کریڈینشل چوری، ڈیٹابیس لیک، سیشن ہائی جیکنگ، سرور سائیڈ انجیکشن, لاگو نہیں ہوتے۔ باقی ماندہ حملے کی سطح ہمارے اصل سے پیش کردہ اسٹیٹک اثاثہ بنڈل (HTML، CSS، JavaScript) ہے۔ ہم فرض کر کے ڈیزائن کرتے ہیں:

Content Security Policy, ڈائریکٹیو کے مطابق

موجودہ پالیسی (کسی بھی درخواست کے لیے Response headers میں تصدیق کریں):

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'

ہر ڈائریکٹیو کیا کرنے دیتی ہے اور کہاں سمجھوتہ کرتی ہے:

/bio/* (یوزر کے دیے گئے avatars کے لیے ڈھیلا img-src) اور /embed/* (جان بوجھ کر embedding کے لیے ڈھیلا frame-ancestors) پر الگ CSP پالیسیاں لاگو ہوتی ہیں۔ دونوں site/_headers میں دستاویز شدہ ہیں۔

ٹرانسپورٹ + فریمنگ ہیڈرز

سروس ورکر

ہمارا سروس ورکر (site/sw.js) صرف same-origin اثاثے cache کرتا ہے۔ fetch handler واضح طور پر cross-origin درخواستیں اور non-GET طریقے مسترد کرتا ہے, آپ GitHub پر logic پڑھ سکتے ہیں۔ Cache writes event.waitUntil() میں لپٹے ہوئے ہیں تاکہ navigation کے دوران ڈراپ نہ ہوں۔

ان پٹ صفائی

ہر رینڈرنگ پاتھ جو یوزر ان پٹ قبول کرتا ہے اسے ناقابل اعتماد متن کے طور پر برتتا ہے:

کراس اورجن امیج فیچنگ

جب کوئی یوزر vCard فوٹو یا لوگو کے طور پر کوئی https: URL پیسٹ کرتا ہے تو براؤزر اسے CORS اور ہمارے CSP کی img-src allowlist کے تابع فیچ کرتا ہے۔ تصویر canvas پر رینڈر ہوتی ہے۔ یہ کبھی live DOM نہیں بنتی، کبھی code کے طور پر نہیں چلتی، اور کبھی ہمارے اصل تک نہیں پہنچتی, فیچ براؤزر → remote image ہے، اور نتیجہ client-side پر paint ہوتا ہے۔ remote image URL کنٹرول کرنے والا حملہ آور یہ ٹریک کر سکتا ہے کہ URL لوڈ ہوا (اپنے سرور پر ایک log line) لیکن ہمارے صفحے سے کچھ نہیں نکال سکتا۔

Subresource Integrity (SRI)

ہم جو JavaScript اور CSS ship کرتے ہیں وہ سب same-origin ہے۔ ہم کوئی تھرڈ پارٹی scripts یا stylesheets لوڈ نہیں کرتے، اس لیے SRI hashes لاگو نہیں ہوتے۔ اگر ہم کبھی کوئی تھرڈ پارٹی اثاثہ لوڈ کریں گے تو اس پر SRI integrity attribute ship کریں گے اور hash-update process اس صفحے پر دستاویز کریں گے۔

خطرے کی اطلاع دینا

اگر آپ Abundera QR کو متاثر کرنے والا کوئی سیکیورٹی مسئلہ دریافت کریں, چاہے ہمارے کوڈ، ہماری تعیناتی یا ہم جو dependency ship کرتے ہیں اس میں, براہ کرم اسے نجی طور پر security@abundera.ai کو رپورٹ کریں۔ ہم ۷۲ گھنٹوں میں triage کرنے کا ہدف رکھتے ہیں۔ آپ ہمارے /.well-known/security.txt فائل میں رابطے کی تفصیلات کے ذریعے بھی رابطہ کر سکتے ہیں۔

کوئی bug bounty نہیں (ابھی کے لیے)

ہم ابھی ادائیگی شدہ انعامات پیش نہیں کرتے، لیکن ہر تصدیق شدہ درست رپورٹ کو changelog میں credit اور ہمارا عوامی شکریہ ملتا ہے۔

مندرجہ بالا کسی بھی بات کی تصدیق کریں

اس صفحے پر ہر دعوی آپ کے براؤزر کے DevTools سے ہم پر اعتماد کیے بغیر قابل تصدیق ہے:

رابطہ

سیکیورٹی انکشافات: security@abundera.ai

آخری اپڈیٹ: 2026-04-19۔ اگلا جائزہ: 2026-07-19۔