Anty-quishing po stronie wystawcy. Lokalizacja danych po stronie przechowywania.
Każdy link Pro przechodzi przez siedmiowarstwowy potok anty-quishingowy w chwili wystawienia, przy każdej zmianie docelowego adresu i w ramach harmonogramowanego cyklu. Dziennik skanowań zawiera tylko kraj i klasę urządzenia, bez IP, bez agenta użytkownika, bez ciasteczka, bez profilu behawioralnego do wycieku. D1 dla pojedynczego regionu jest dostępne dla Agency i Custom Enterprise.
Dane, które zbieramy
Każdy bajt trafiający na nasze serwery należy do jednej z czterech kategorii:
Dane konta
Email, poziom planu, status planu, ID klienta i subskrypcji Stripe, opcjonalna nazwa zespołu i etykieta przestrzeni roboczej. Tyle. Bez telefonu, bez adresu (adres rozliczeniowy pozostaje w Stripe), bez profilu behawioralnego.
Dane kodu
Docelowy URL, 7-znakowy skrót Base58, etykieta i tagi ustawione przez ciebie, opcjonalny wygląd QR (kolory / logo / ramka), opcjonalna bramka hasłem, opcjonalne harmonogramowanie. Twoje własne; eksportowalne jako CSV w dowolnym momencie.
Dane skanowania
Koszyk UTC dnia + kraj (z CF-IPCountry) + klasa urządzenia (mobilne / tablet / komputer / nieznane). Surowy User-Agent jest odrzucany natychmiast po klasyfikacji. IP nigdy nie trafia do bazy danych. Buforowane w KV dla ścieżki przekierowań, agregowane do D1 przez ctx.waitUntil. Agregaty krajowe poniżej 5 skanowań są łączone w „Other”, żeby uniemożliwić re-identyfikację.
Metadane audytu / rozliczeniowe
Dziennik tylko do dołączania mutacji (kto co zrobił, kiedy, w jakim zakresie), retencja 180 dni. Zdarzenia webhooka Stripe deduplikowane dla idempotencji, bez PII klientów poza ID klienta Stripe. Dziennik żądań GDPR (eksport / usunięcie / przywrócenie), zachowany po usunięciu konta dla dowodu honorowania w terminie.
Pełny schemat: docs/SCHEMA.md w naszym repozytorium źródłowym; każda kolumna jest udokumentowana z polityką retencji.
Gdzie dane żyją
| Powierzchnia | Dostawca | Region | Opcja pojedynczego regionu? |
|---|---|---|---|
| Panel + API | Cloudflare Pages Functions | Globalny krawędziowy (najbliższy PoP) | Tak, tylko Agency+ |
| Rekordy kodu (D1) | Cloudflare D1 (SQLite) | Region podstawowy przypisany przy provisionowaniu (dziś: ENAM) | Tak, shard per-tenant Agency+ |
| Ścieżka przekierowań (KV) | Cloudflare Workers KV | Replikowane krawędziowo globalnie dla <50ms p99 | Niedostępne (replikacja jest produktem) |
| Zaszyfrowane kopie zapasowe | Cloudflare R2 | Region podstawowy przypisany przy tworzeniu zasobnika | Tak, zasobnik jurysdykcyjny EU / APAC na żądanie |
| Płatności | Stripe | US, obsługa regionalnego PII przez własną lokalizację Stripe | Przez umowę Stripe |
| Email transakcyjny | ZeptoMail (Zoho) | IN (region EU Zoho dostępny na żądanie) | Tak, region EU Zoho |
Co dokładnie przekracza granicę
- Skanowania nigdy nie przekraczają granicy w sposób stratny. Skanowanie z Lizbony trafia do lizbońskiego PoP Cloudflare, worker zapisuje dzień/kraj/urządzenie do KV na krawędzi i asynchronicznie agreguje do D1 w jego podstawowym regionie. Oryginalny IP skanującego żyje w efemerycznym stanie żądania Cloudflare przez czas trwania żądania HTTP i nigdy nie jest utrwalany w naszej bazie danych.
- Żądania do panelu kończą się w najbliższym PoP Cloudflare i wywołują D1 przez prywatną sieć Cloudflare. Nasze Pages Functions czytają/zapisują D1 w jego przypisanym regionie; krawędziowy PoP serwuje bundle HTML + JS z globalnego cache zasobów statycznych.
- Webhooki Stripe przekraczają granicę raz, Stripe (US) wysyła POST do naszego endpointu Cloudflare Pages, który weryfikuje HMAC, zapisuje minimalny wiersz (event_id, type) dla idempotencji i dyspatchuje zdarzenia downstream.
- Email transakcyjny (Zepto) przekracza granicę raz na wysyłkę, nasz worker przekazuje wyrenderowany szablon do API Zepto; Zepto dostarcza do serwera pocztowego odbiorcy. Treść to linki zaproszeń, powiadomienia cyklu rozliczeniowego i alerty limitu skanowań, bez danych skanowań klientów.
Potok anty-quishingowy
Quishing QR wzrósł o 146% w Q1 2026. Typowy dostawca skróconych linków reaguje dopiero po skardze klienta. My sprawdzamy każdy link w chwili wystawienia, przy każdej zmianie docelowego adresu po naszej stronie i w ramach harmonogramowanego cyklu, bo klient może przepiąć własny URL na własnym serwerze bez żadnego wywołania naszego API. Ten sam potok analizy zagrożeń, który zasila nasz publiczny skaner pod check.qr.abundera.ai, sprawdza każdy wystawiany przez nas link.
Siedem warstw detekcji, każda z oczekującym wnioskiem patentowym w USA. Każda warstwa zasila wspólny werdykt; trafienie w dowolną z nich może zablokować utworzenie, odrzucić zmianę docelowego adresu lub zawiesić już aktywny link.
| Warstwa | Co wykrywa | Kiedy działa |
|---|---|---|
| Zmienność łańcucha przekierowań | Ile niezależnych stron kontroluje ścieżkę między naszym krótkim linkiem a końcową stroną. Dwuetapowy łańcuch przez czyjś redirector to inny poziom ryzyka niż bezpośredni cel. | Tworzenie, zmiana celu, cykliczne sprawdzenie |
| Wielomodalna analiza payloadu | WiFi, kontakty, telefonia, poczta, kalendarz, geolokalizacja, kryptowaluty, Android intent i payloady inline-data mają własne analizatory typowe. Schematy twardo zablokowane są odrzucane przy submitowaniu. | Tworzenie, zmiana celu |
| Cloaking skanera vs. przeglądarki | Strony serwujące czystą treść skanerowi i phishing ludziom. Wykrywane przez równoległe pobieranie z kontrolowaną wariancją fingerprintu i oceną rozbieżności. | Tworzenie, cykliczne sprawdzenie |
| Zmienność serwera docelowego | Świeżo zarejestrowane domeny, nowe certyfikaty, TLD o wysokiej rotacji, brak HSTS i degradacja schematu transportu. Niezależne od łańcucha przekierowań; statyczny jednoetapowy łańcuch do sześciodniowego certyfikatu na podejrzanym TLD też jest flagowany. | Tworzenie, zmiana celu, cykliczne sprawdzenie |
| Proweniencja instancji fizycznej | Rozproszony rejestr hash-y zasilany przez społeczność, kluczowany zdekodowanym payloadem. Pojedynczy kod QR skanowany w wielu odległych regionach w krótkim oknie czasowym jest kandydatem na atak naklejkowy. Każdy wystawiany przez nas link dostaje czysty wpis proweniencji przy tworzeniu, dzięki czemu ataki naklejkowe na legalne kody Pro są wykrywane. | Ciągłe |
| Rozbieżność wizualnej marki | Jeśli kod nosi logo marki, której kanoniczny zestaw domen nie obejmuje zdekodowanego celu, kod jest rozbieżny z marką. Dotyczy każdego kodu Pro z naszą funkcją logo centralnego; phisher nie może wystawić kodu z logo Chase wskazującego na domenę nie-Chase. | Tworzenie, zmiana logo, zmiana celu |
| Topologia sensora / miejsca | Dla kodów przypisanych do miejsca (parkomaty, check-in hotelowy, menu restauracyjne, eksponaty muzealne) otoczenie RF urządzenia skanującego jest sprawdzane względem zarejestrowanej topologii tego miejsca. Niezgodność zwraca anomalię kontekstu sensora już przy pierwszym skanowaniu fałszywej naklejki. Poziom Enterprise; operator miejsca rejestruje oczekiwaną topologię przy tworzeniu kodu. | Każde skanowanie |
Problem zmiany po stronie klienta
Docelowy URL linku Pro żyje na serwerze klienta, nie u nas. Klient może przepiąć example.com/promo z prawdziwej promocji na stronę phishingową bez żadnego wywołania API Abundera. Traktujemy to jako główną ścieżkę nadużyć, nie przypadek brzegowy. Cykliczne sprawdzenia aktywnych celów odbywają się według harmonogramu, a nasza warstwa wykrywania cloakingu celuje w strony, które zmieniają się po submitowaniu. Kiedy cel zaczyna nie przechodzić sprawdzeń po utworzeniu, link jest automatycznie wstrzymywany, właściciel otrzymuje email z konkretnym werdyktem, a zdarzenie jest rejestrowane w dzienniku audytu.
Fałszywe pozytywne i odwołania
Analiza zagrożeń czasem się myli. Legalna marka na nowo wystawionym certyfikacie, prawdziwa promocja, której strona się zmieniła, przeniesiona domena. Każde zablokowanie i każde automatyczne wstrzymanie zawiera konkretną warstwę werdyktu, która zadziałała, dane wejściowe, które ją wyzwoliły, oraz jednoklilkowe odwołanie eskalujące do człowieka w ciągu jednego dnia roboczego. Wolimy wstrzymywać zamiast usuwać; wstrzymany link można włączyć ponownie w ciągu sekund po rozpatrzeniu odwołania.
Lokalizacja dla pojedynczego regionu (Agency+ i Custom Enterprise)
Dla kupujących tylko w EU lub tylko w APAC klienci Agency mogą zażądać:
- D1 umieszczone w jednej jurysdykcji (EU: EEUR lub WEUR; APAC: APAC). Cloudflare honoruje podpowiedź
locationprzy tworzeniu bazy danych; uruchamiamy shard D1 per-tenant w żądanym regionie (ADR-0010). - Zasobnik R2 w tej samej jurysdykcji, nocne zaszyfrowane kopie zapasowe D1 do R2 trafiają do odpowiadającego regionu.
- Region EU Zepto dla emaila transakcyjnego, konfigurowane na poziomie serwisu, bez zmiany kodu.
- KV pozostaje globalny, replikacja krawędziowa jest kluczowa dla gwarancji przekierowania <50ms. Jeśli pojedynczy region KV jest twardym wymogiem, porozmawiaj z nami; możemy ocenić, czy wariant Workera tylko regionalnego jest wykonalny dla twojej kampanii.
Ceny dodatku dla pojedynczego regionu są w stałej stawce (bez dopłaty per miejsce) i zależą od konkretnej kombinacji. Napisz na enterprise@abundera.ai z docelową jurysdykcją i prognozowanym wolumenem skanowań, a podamy wycenę.
Stan zgodności
- GDPR, minimalność danych z założenia (tylko kraj i klasa urządzenia, bez IP, bez UA, bez ciasteczek) plus jednoklilkowy eksport i twarde usunięcie w 30 dniach. DPA + unijne SCC dostępne dla wszystkich płatnych poziomów.
- CCPA, objęte tym samym interfejsem eksportu i usunięcia. „Sprzedaż danych” to coś, czego nie robimy: bez udostępniania stronom trzecim, bez partnerów reklamowych, bez remarketingu.
- SSO + provisionowanie SCIM, pojedyncze logowanie SAML 2.0 + OIDC i cykl życia użytkownika i grupy SCIM 2.0 (poziomy Agency + Custom Enterprise). Zgodność RFC 7643/7644 zweryfikowana (20/20 w pakiecie testów pochodnym PingIdentity). Flaga funkcji per-połączenie oznacza, że SCIM jest domyślnie wyłączony i włączany per klient; ograniczony do 50 RPS per token; rejestrowany w dzienniku audytu. Okta/Entra/JumpCloud działają dziś jako niestandardowe aplikacje SCIM, podczas gdy wpisy do katalogów partnerów są w toku.
- SOC 2 Type II, w zakresie. Proces 6-9 miesięcy. Jeśli to twardy wymóg dla ciebie, napisz na enterprise@abundera.ai; możemy podzielić się bieżącym statusem i prognozowanym harmonogramem.
- PCI-DSS, poza naszym bezpośrednim zakresem; płatności obsługiwane end-to-end przez Stripe (certyfikowany PCI Level 1).
Zgłaszanie luk bezpieczeństwa
Znalazłeś lukę? Napisz na security@abundera.ai. Skoordynowane ujawnianie, potwierdzimy w ciągu 24h (dni robocze), dokonamy triażu w ciągu 72h i skoordynujemy z tobą harmonogram naprawy i ujawnienia. Brak programu bug bounty na razie; publicznie dziękujemy badaczom pod abundera.ai/security/thanks/ po wdrożeniu poprawki.