Keselamatan

Model keselamatan kami dalam satu ayat: tiada apa-apa di pelayan yang boleh diserang. Semua di bawah boleh disahkan daripada DevTools anda.

Seni Bina

Abundera QR ialah aplikasi halaman tunggal statik yang dihidangkan daripada Cloudflare Pages. Tiada pelayan aplikasi, tiada pangkalan data, tiada akaun pengguna, tiada pengesahan, tiada titik akhir API, dan tiada laluan kod bahagian belakang yang memproses data pengguna. Setiap operasi penjanaan, pengekodan, pengimbasan, dan pemaparan kod QR dijalankan sepenuhnya dalam penyemak imbas anda.

Model ancaman

Oleh sebab kami tidak mengumpul, menyimpan, dan menghantar sebarang data pengguna, ancaman aplikasi web yang paling biasa, pencurian kelayakan, pelanggaran pangkalan data, rampasan sesi, suntikan sisi pelayan, tidak terpakai. Permukaan serangan yang tinggal ialah pakej aset statik (HTML, CSS, JavaScript) yang dihidangkan daripada origin kami. Kami mereka bentuk dengan andaian:

Dasar Keselamatan Kandungan, mengikut direktif

Dasar semasa (sahkan dalam pengepala Tindak Balas untuk sebarang permintaan):

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'

Apa yang setiap direktif membenarkan kami lakukan dan di mana ia berkompromi:

Dasar CSP yang berbeza terpakai untuk /bio/* (longgarkan img-src untuk avatar yang dibekalkan pengguna) dan /embed/* (longgarkan frame-ancestors untuk pembenaman yang disengajakan). Kedua-duanya didokumenkan dalam site/_headers.

Pengepala pengangkutan dan pembingkaian

Pekerja perkhidmatan

Pekerja perkhidmatan kami (site/sw.js) hanya menyimpan aset same-origin dalam cache. Pengendali fetch secara eksplisit menolak permintaan cross-origin dan kaedah bukan GET, anda boleh membaca logiknya di GitHub. Penulisan cache dibungkus dalam event.waitUntil() supaya tidak boleh digugurkan di tengah navigasi.

Pembersihan input

Setiap laluan pemaparan yang menerima input pengguna melayan ia sebagai teks tidak dipercayai:

Pengambilan imej cross-origin

Apabila pengguna menampal URL https: sebagai foto vCard atau logo, penyemak imbas mengambilnya tertakluk kepada CORS dan senarai benarkan img-src CSP kami. Imej dipapar ke dalam kanvas. Ia tidak pernah menjadi DOM langsung, tidak pernah dijalankan sebagai kod, dan tidak pernah sampai ke origin kami, pengambilan adalah penyemak imbas → imej jauh, dan hasilnya dilukis pada sisi klien. Penyerang yang mengawal URL imej jauh boleh menjejaki bahawa URL telah dimuatkan (baris log pada pelayan mereka sendiri) tetapi tidak boleh mengekstrak apa-apa daripada halaman kami.

Integriti Subresource (SRI)

Semua JavaScript dan CSS yang kami hantar adalah same-origin. Kami tidak memuatkan skrip atau helaian gaya pihak ketiga, jadi hash SRI tidak terpakai. Jika kami pernah memuatkan aset pihak ketiga, kami akan menghantar atribut integrity SRI padanya dan mendokumenkan proses kemas kini hash dalam halaman ini.

Melaporkan kerentanan

Jika anda menemui isu keselamatan yang menjejaskan Abundera QR, sama ada dalam kod kami, deployment kami, atau dalam kebergantungan yang kami hantar, sila laporkannya secara peribadi ke security@abundera.ai. Kami berhasrat untuk melakukan triaj dalam masa 72 jam. Anda juga boleh menghubungi kami melalui butiran hubungan dalam fail /.well-known/security.txt kami.

Tiada bug bounty (buat masa ini)

Kami tidak menawarkan hadiah berbayar buat masa ini, tetapi setiap laporan sah yang disahkan menerima kredit dalam changelog dan ucapan terima kasih awam kami.

Sahkan mana-mana perkara di atas

Setiap dakwaan di halaman ini boleh disahkan daripada DevTools penyemak imbas anda tanpa mempercayai kami:

Hubungi

Pendedahan keselamatan: security@abundera.ai

Kemas kini terakhir: 2026-04-19. Semakan seterusnya: 2026-07-19.