Keamanan

Model keamanan kami dalam satu kalimat: tidak ada apa pun di server yang bisa diserang. Semua yang ada di bawah ini dapat diverifikasi dari DevTools Anda.

Arsitektur

Abundera QR adalah aplikasi satu halaman statis yang disajikan dari Cloudflare Pages. Tidak ada server aplikasi, tidak ada basis data, tidak ada akun pengguna, tidak ada autentikasi, tidak ada titik akhir API, dan tidak ada jalur kode backend yang memproses data pengguna. Setiap operasi pembuatan, pengkodean, pemindaian, dan rendering kode QR berjalan sepenuhnya di dalam browser Anda.

Model ancaman

Karena kami tidak mengumpulkan, menyimpan, dan mengirimkan data pengguna, ancaman aplikasi web yang paling umum, pencurian kredensial, pelanggaran basis data, pembajakan sesi, injeksi sisi server, tidak berlaku. Permukaan serangan yang tersisa adalah bundel aset statis (HTML, CSS, JavaScript) yang disajikan dari origin kami. Kami merancang dengan asumsi:

Kebijakan Keamanan Konten, per direktif

Kebijakan saat ini (verifikasi di header Respons untuk permintaan apa pun):

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 memungkinkan kami lakukan dan di mana berkompromi:

Kebijakan CSP yang berbeda berlaku untuk /bio/* (longgarkan img-src untuk avatar yang disediakan pengguna) dan /embed/* (longgarkan frame-ancestors untuk penyematan yang disengaja). Keduanya didokumentasikan di site/_headers.

Header transport dan framing

Service worker

Service worker kami (site/sw.js) hanya menyimpan aset same-origin dalam cache. Pengendali fetch secara eksplisit menolak permintaan cross-origin dan metode non-GET, Anda dapat membaca logikanya di GitHub. Penulisan cache dibungkus dalam event.waitUntil() sehingga tidak dapat dihapus di tengah navigasi.

Sanitasi input

Setiap jalur rendering yang menerima input pengguna memperlakukannya sebagai teks tidak tepercaya:

Pengambilan gambar cross-origin

Ketika pengguna menempelkan URL https: sebagai foto vCard atau logo, browser mengambilnya tunduk pada CORS dan daftar izin img-src CSP kami. Gambar dirender ke dalam kanvas. Gambar tidak pernah menjadi DOM langsung, tidak pernah dijalankan sebagai kode, dan tidak pernah mencapai origin kami, pengambilan adalah browser → gambar jarak jauh, dan hasilnya dilukis di sisi klien. Penyerang yang mengendalikan URL gambar jarak jauh dapat melacak bahwa URL tersebut dimuat (baris log di server mereka sendiri) tetapi tidak dapat mengekstrak apa pun dari halaman kami.

Integritas Subresource (SRI)

Semua JavaScript dan CSS yang kami kirimkan adalah same-origin. Kami tidak memuat skrip atau lembar gaya pihak ketiga, sehingga hash SRI tidak berlaku. Jika kami pernah memuat aset pihak ketiga, kami akan mengirimkan atribut integrity SRI padanya dan mendokumentasikan proses pembaruan hash di halaman ini.

Melaporkan kerentanan

Jika Anda menemukan masalah keamanan yang mempengaruhi Abundera QR, baik dalam kode kami, deployment kami, atau dalam dependensi yang kami kirimkan, harap laporkan secara pribadi ke security@abundera.ai. Kami bertujuan untuk melakukan triage dalam 72 jam. Anda juga dapat menghubungi kami melalui detail kontak di file /.well-known/security.txt kami.

Belum ada bug bounty

Kami saat ini tidak menawarkan hadiah berbayar, tetapi setiap laporan valid yang dikonfirmasi menerima kredit di changelog dan ucapan terima kasih publik kami.

Verifikasi hal di atas

Setiap klaim di halaman ini dapat diverifikasi dari DevTools browser Anda tanpa harus mempercayai kami:

Kontak

Pengungkapan keamanan: security@abundera.ai

Terakhir diperbarui: 2026-04-19. Tinjauan berikutnya: 2026-07-19.