নিরাপত্তা

আমাদের নিরাপত্তা মডেল এক বাক্যে: সার্ভারে আক্রমণ করার মতো কিছু নেই। নিচের সবকিছু আপনার DevTools থেকে যাচাইযোগ্য।

আর্কিটেকচার

জেনারেটরটি একটি স্ট্যাটিক সিঙ্গেল-পেজ অ্যাপ্লিকেশন যা Cloudflare Pages থেকে পরিবেশন করা হয়: কোনো ব্যবহারকারী অ্যাকাউন্ট নেই, কোনো প্রমাণীকরণ নেই এবং জেনারেশন ফ্লোর কোথাও কোনো ব্যাকএন্ড কোড পাথ নেই। প্রতিটি QR তৈরি, এনকোডিং, স্ক্যানিং এবং রেন্ডারিং অপারেশন সম্পূর্ণভাবে আপনার ব্রাউজারের মধ্যে চলে। একটি ছোট সার্ভারলেস এন্ডপয়েন্ট এর পাশে আছে এবং সেটি লুকানো না রেখে এখানে তালিকাভুক্ত করা হলো: /api/contact (কন্টাক্ট ফর্ম, যা আপনার জমা দেওয়া তথ্য Cloudflare D1-এ সংরক্ষণ করে এবং আমাদের ইমেইল করে)। QR কোড তৈরি করার সময় এটি কল হয় না; URL সেফটি চেকার একটি পৃথক পণ্য যা 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 অ্যাকাউন্টের মধ্য দিয়ে বের হয়, অ্যাসেট ফাইলনেম কন্টেন্ট-হ্যাশড তাই একটি প্রতিস্থাপিত ফাইল তাকে রেফার করা প্রতিটি URL বদলে দেয়, এবং সার্ভিস ওয়ার্কার শুধুমাত্র একই-অরিজিনের GET রেসপন্স ক্যাশ করে। ম্যানিফেস্টো সাইটটিকে যেভাবে শিপ করা হয়েছে সেভাবে বর্ণনা করে। এটি এমন দাবি নয় যে কোনো ওয়েব পেজ কখনো কোথাও ডেটা পাঠাতে পারবে না, এবং আমরা চাই আপনি আমাদের এই সংকীর্ণ, যাচাইযোগ্য বিবৃতির ভিত্তিতে বিচার করুন।

/bio/* (ব্যবহারকারী-সরবরাহকৃত অ্যাভাটারের জন্য শিথিল img-src) এবং /embed/* (ইচ্ছাকৃত এম্বেডিংয়ের জন্য শিথিল frame-ancestors)-এ ভিন্ন CSP পলিসি প্রযোজ্য। উভয়ই site/_headers-এ ডকুমেন্ট করা হয়েছে।

ট্রান্সপোর্ট + ফ্রেমিং হেডার

সার্ভিস ওয়ার্কার

আমাদের সার্ভিস ওয়ার্কার (site/sw.js) শুধুমাত্র একই-অরিজিনের অ্যাসেট ক্যাশ করে। fetch হ্যান্ডলার স্পষ্টভাবে ক্রস-অরিজিন অনুরোধ এবং non-GET পদ্ধতি প্রত্যাখ্যান করে, আপনি /sw.js-এ লজিক পড়তে পারেন (সোর্সটি অনুসরণযোগ্য থাকার মতো যথেষ্ট আনমিনিফাইড অবস্থায় শিপ হয়)। ক্যাশ রাইট event.waitUntil()-এ মোড়ানো তাই এগুলি নেভিগেশনের মাঝে বাদ পড়তে পারে না।

ইনপুট স্যানিটাইজেশন

ব্যবহারকারীর ইনপুট গ্রহণকারী প্রতিটি রেন্ডারিং পাথ এটিকে অবিশ্বস্ত টেক্সট হিসেবে বিবেচনা করে:

ক্রস-অরিজিন ইমেজ ফেচিং

যখন একজন ব্যবহারকারী vCard ফটো বা লোগো হিসেবে একটি https: URL পেস্ট করেন, ব্রাউজার CORS এবং আমাদের CSP-এর img-src অনুমতি তালিকা সাপেক্ষে এটি ফেচ করে। ছবিটি একটি ক্যানভাসে রেন্ডার হয়। এটি কখনো লাইভ DOM হয় না, কখনো কোড হিসেবে চলে না এবং কখনো আমাদের অরিজিনে পৌঁছায় না, ফেচটি হলো ব্রাউজার → রিমোট ইমেজ, এবং ফলাফলটি ক্লায়েন্ট-সাইডে পেইন্ট করা হয়। একটি রিমোট ইমেজ URL নিয়ন্ত্রণকারী আক্রমণকারী ট্র্যাক করতে পারে যে URL লোড হয়েছিল (তাদের নিজের সার্ভারে একটি লগ লাইন) কিন্তু আমাদের পেজ থেকে কিছু বের করতে পারে না।

সাবরিসোর্স ইন্টিগ্রিটি (SRI)

আমরা যে সমস্ত JavaScript এবং CSS পাঠাই তা একই-অরিজিনের। আমরা তৃতীয়-পক্ষের স্ক্রিপ্ট বা স্টাইলশিট লোড করি না, তাই SRI হ্যাশ প্রযোজ্য নয়। যদি আমরা কখনো তৃতীয়-পক্ষের অ্যাসেট লোড করি, আমরা এটিতে একটি SRI integrity অ্যাট্রিবিউট পাঠাব এবং এই পেজে হ্যাশ-আপডেট প্রক্রিয়া ডকুমেন্ট করব।

একটি দুর্বলতা রিপোর্ট করা

আপনি যদি Abundera QR-এ একটি নিরাপত্তা সমস্যা আবিষ্কার করেন, আমাদের কোডে, আমাদের ডিপ্লয়মেন্টে, বা আমরা যে ডিপেন্ডেন্সি পাঠাই তাতে, অনুগ্রহ করে এটি ব্যক্তিগতভাবে security@abundera.ai-এ রিপোর্ট করুন। আমরা ৭২ ঘণ্টার মধ্যে ট্রিয়াজ করার লক্ষ্য রাখি। আপনি আমাদের /.well-known/security.txt ফাইলে যোগাযোগের বিবরণের মাধ্যমেও আমাদের সাথে যোগাযোগ করতে পারেন।

কোনো বাগ বাউন্টি নেই (এখনো)

আমরা বর্তমানে পেইড বাউন্টি অফার করি না, কিন্তু প্রতিটি নিশ্চিত বৈধ রিপোর্ট চেঞ্জলগে ক্রেডিট এবং আমাদের প্রকাশ্য ধন্যবাদ পায়।

উপরের যেকোনোটি যাচাই করুন

এই পেজের প্রতিটি দাবি আমাদের বিশ্বাস না করেই আপনার ব্রাউজারের DevTools থেকে যাচাইযোগ্য:

যোগাযোগ

নিরাপত্তা প্রকাশ: security@abundera.ai

সর্বশেষ আপডেট: ২০২৬-০৯-০৩। পরবর্তী পর্যালোচনা: ২০২৬-১২-০৩।