Tietoturva

Tietoturvamallimme yhdessä lauseessa: palvelimella ei ole mitään hyökkättävää. Kaiken alla olevan voi falsifioida DevTools-työkalullasi.

Arkkitehtuuri

Abundera QR on staattinen yhden sivun sovellus, jota tarjoillaan Cloudflare Pages -palvelusta. Ei ole sovelluspalvelinta, tietokantaa, käyttäjätilejä, todennusta, API-päätepisteitä eikä taustajärjestelmän koodipolkua, joka käsittelisi käyttäjätietoja. Kaikki QR-koodin luomis-, koodaus-, skannaus- ja renderöintitoiminnot suoritetaan kokonaan selaimessasi.

Uhkamalli

Koska emme kerää, tallenna tai siirrä käyttäjätietoja, yleisimmät web-sovellusten uhat — tunnistetietojen varastaminen, tietokantamurto, istunnon kaappaaminen, palvelinpuolen injektio — eivät koske meitä. Jäljelle jäävä hyökkäyspinta on staattinen resurssipaketti (HTML, CSS, JavaScript), jota tarjoillaan lähteestämme. Suunnittelemme olettaen:

Content Security Policy — direktiiveittäin

Nykyinen käytäntö (tarkista vastausotsakkeista minkä tahansa pyynnön osalta):

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'

Mitä kukin direktiivi sallii meidän tehdä ja missä se tekee myönnytyksiä:

Eri CSP-käytännöt koskevat /bio/*-polkua (lievennetty img-src käyttäjän toimittamille avatarille) ja /embed/*-polkua (lievennetty frame-ancestors tarkoituksellista upotusta varten). Molemmat on dokumentoitu tiedostossa site/_headers.

Liikenne + kehystys-otsakkeet

Service worker

Service workerimme (site/sw.js) tallentaa välimuistiin vain same-origin-resursseja. Fetch-käsittelijä hylkää eksplisiittisesti cross-origin-pyynnöt ja muut kuin GET-metodit — voit lukea logiikan GitHubissa. Välimuistikirjoitukset on kääritty event.waitUntil():iin, jotta niitä ei voi keskeyttää kesken navigoinnin.

Syötteen sanitointi

Kaikki käyttäjän syötteen hyväksyvät renderöintipolut käsittelevät sen epäluotettavana tekstinä:

Cross-origin-kuvien hakeminen

Kun käyttäjä liittää https:-URL:n vCard-kuvana tai logona, selain hakee sen CORSin ja CSP:n img-src-sallittujen listan alaisena. Kuva renderöidään canvakseen. Se ei koskaan muutu eläväksi DOM:iksi, ei koskaan suorita koodina eikä koskaan saavuta lähdettämme — haku on selain → etäkuva, ja tulos maalataan asiakaspuolella. Hyökkääjä, joka hallitsee etäkuva-URL:a, voi seurata, että URL ladattiin (lokimerkintä heidän omalla palvelimellaan), mutta ei voi suodattaa mitään sivultamme.

Subresource Integrity (SRI)

Kaikki toimittamamme JavaScript ja CSS on same-origin. Emme lataa kolmannen osapuolen skriptejä tai tyylitaulukoita, joten SRI-hashit eivät ole sovellettavissa. Jos koskaan lataamme kolmannen osapuolen resurssin, lisäämme siihen SRI integrity-attribuutin ja dokumentoimme hash-päivitysprosessin tällä sivulla.

Haavoittuvuuden ilmoittaminen

Jos löydät Abundera QR:ään vaikuttavan tietoturvaongelman — olipa se koodissamme, käyttöönotossamme tai toimittamassamme riippuvuudessa — ilmoita siitä yksityisesti osoitteeseen security@abundera.ai. Tavoitteemme on luokitella ongelma 72 tunnin sisällä. Voit myös ottaa meihin yhteyttä tiedostossa /.well-known/security.txt olevien yhteystietojen kautta.

Ei bug bounty -ohjelmaa (vielä)

Emme tällä hetkellä tarjoa maksullisia palkkioita, mutta jokainen vahvistettu pätevä raportti saa maininnan muutoslokissa ja julkisen kiitoksemme.

Tarkista kaikki yllä oleva

Jokaisen tällä sivulla esitetyn väitteen voi falsifioida selaimesi DevTools-työkalulla ilman, että sinun tarvitsee luottaa meihin:

Yhteystiedot

Tietoturvan paljastukset: security@abundera.ai

Viimeksi päivitetty: 2026-04-19. Seuraava tarkistus: 2026-07-19.