Bezpečnosť a ochrana údajov
Čo UCP prijíma a ukladá, ako chráni údaje kupujúceho, prečo nikdy nespracúva platby a ako je oddelený každý obchod.
Na tejto stránke
- Bezpečnostný model v piatich vetách
- Prenos
- Kto môže čo volať
- Žiadne overovanie
- UCP-Agent identifikuje, neoveruje
- Id relácie je prístupový údaj
- Čo API nikdy nerobí
- Ako sú obchody oddelené
- Čo API prijíma
- Čo API ukladá a ako dlho
- Žiadne platobné údaje, zámerne
- Token odkazu na odovzdanie
- Sťahovanie profilu platformy
- Obsah z obchodu
- Logy
- Ochrana osobných údajov
- Kontrolný zoznam pre bezpečnostnú revíziu
- Nahlásenie bezpečnostného problému
Táto kapitola je podkladom pre bezpečnostnú revíziu integrácie. Uvádza, čomu služba UCP obchodu na Monokaide dôveruje, čo prijíma, čo ukladá a ako dlho a čo musí chrániť vaša platforma na svojej strane. V skratke: API je otvorené a obchod rozpozná podľa domény, id relácie je kľúčom k tejto relácii, žiadna platba cez API nikdy neprechádza a údaje kupujúceho zostávajú v obchode obmedzený čas.
Príklady používajú obchod https://shop.example.com a platformu, ktorej profil
je na adrese https://platform.example.com/.well-known/ucp.
Bezpečnostný model v piatich vetách
- Doména je obchod. Na požiadavku odpovie obchod, na ktorého overenú vlastnú doménu bola poslaná; nič iné obchod nevyberá.
- Volania sa neoverujú. Neexistuje API kľúč, OAuth ani podpis
požiadavky;
UCP-Agentvašu platformu pomenúva, ale jej totožnosť nedokazuje. - Id relácie je prístupový token. Kto pozná id košíka alebo checkoutu, môže túto reláciu v danom obchode čítať aj meniť.
- Nikdy žiadne platobné údaje. Kupujúci platí na webe obchodu; API nečíta žiadne platobné pole a neprijíma žiadnu platbu.
- Údaje kupujúceho sa uchovávajú obmedzený čas. Údaje relácie sa vymažú 30 dní po uplynutí jej platnosti, uložené odpovede po 25 hodinách.
Prenos
| Hľadisko | Správanie |
|---|---|
| Kde sa UCP poskytuje | Iba na vlastnej doméne obchodu s overeným DNS a aktívnym TLS certifikátom — certifikátom Let's Encrypt, ktorý pre túto doménu získava Monokaido. Adresy Monokaida *.shop.monokaido.com UCP neposkytujú nikdy. |
| TLS | TLS 1.2 a TLS 1.3. |
| Obyčajné HTTP | Port 80 odpovie kódom 301 na tú istú adresu s https://; odpovedá sa tam iba na cestu na overenie certifikátu (/.well-known/acme-challenge/) a na kontrolu stavu servera. Na žiadnu požiadavku UCP sa cez obyčajné HTTP neodpovedá. |
| HSTS | Webový server pridáva ku každej odpovedi Strict-Transport-Security: max-age=31536000; includeSubDomains; vlastné odpovede API nesú navyše Strict-Transport-Security: max-age=15552000; includeSubDomains. |
| Adresy, ktoré API zverejňuje | endpoint v profile, continue_url, order.permalink_url a adresy produktov sú adresy https:// na primárnej doméne obchodu (jeho primárnej overenej doméne, inak na doméne, ktorú ste volali). Adresy obrázkov a právne odkazy obchodu (links) sa odovzdávajú tak, ako ich obchod uložil: môžu viesť na server dodávateľa alebo na akúkoľvek adresu, ktorú obchodník zadal, aj s http://. |
| Odchádzajúce spojenia | Jediná požiadavka, ktorú API posiela k vám, je stiahnutie profilu vašej platformy — iba cez https:// a s certifikátom overeným voči názvu hostiteľa. |
Volajte iba adresy https://, overujte certifikáty a nesledujte
presmerovania: API nikdy nepresmerováva, takže presmerovanie znamená nesprávnu
adresu. Ak vaša politika vyžaduje TLS 1.3, vynúťte ho vo svojom klientovi;
obchod ho ponúka.
Kto môže čo volať
Žiadne overovanie
API je verejné rozhranie, rovnako ako webové stránky obchodu. Obchod sa určí
podľa hlavičky Host požiadavky — presne tej, ktorú prepošle webový server,
nikdy podľa X-Forwarded-Host — a neprijíma žiadny API kľúč, OAuth token,
klientsky certifikát ani podpis. Prihlasovacie údaje, ktoré pošlete, sa
ignorujú. Webové stránky z iných pôvodov jeho odpovede prečítať nevedia:
API nepovoľuje požiadavky z cudzích pôvodov (CORS), preto ho volajte zo
svojich serverov.
UCP-Agent identifikuje, neoveruje
Obchod si stiahne profil, ktorý hlavička uvádza, a vyjednáva s ním, ale hlavičku nič neviaže na volajúceho: vašu adresu profilu môže poslať ktokoľvek. Vyplývajú z toho dve veci:
- Vaše hodnoty
Idempotency-Keysú viazané na obchod a na adresu vášho profilu. Keďže túto adresu môže poslať ktokoľvek, používajte kľúče, ktoré sa nedajú uhádnuť — náhodné UUID verzie 4. Uhádnutý kľúč poslaný s tou istou operáciou, cestou a telom by vrátil vašu uloženú odpoveď niekomu inému. - Relácie nie sú viazané na platformu, ktorá ich vytvorila. Adresa profilu sa ku každej relácii uloží, no pri ďalších volaniach sa nekontroluje.
Id relácie je prístupový údaj
Id košíka alebo checkoutu je UUID verzie 4 z kryptograficky bezpečného
generátora (122 náhodných bitov). Na prečítanie relácie — vrátane mena,
e-mailu, telefónu a adresy kupujúceho — a na jej zmenu či zrušenie stačí
poznať toto id, a to na ktorejkoľvek doméne daného obchodu a bez ohľadu na
UCP-Agent, ktorý volajúci pošle. Na id jedného obchodu odpovie každý iný
obchod not_found.
S id relácií zaobchádzajte ako s heslami:
- Držte ich na svojich serveroch. Nikdy ich neposielajte do prehliadača, do aplikácie ani kupujúcemu a nikdy ich nedávajte do adresy, ktorú zdieľate.
- Nedávajte ich do logov, ktoré čítajú tretie strany.
- Id je v ceste
GET,PUT, zrušenia aj dokončenia, a preto aj v prístupovom logu webového servera obchodu. Tento log patrí Monokaidu a nie je verejný.
Ak id uniklo, reláciu zrušte. Na zrušený košík obchod od tej chvíle
každému odpovie not_found. Zrušený checkout zostane čitateľný — jeho posledná odpoveď
aj s údajmi kupujúceho — kým sa 30 dní po expires_at nevymaže. Kým si preto
kupujúci otvorený checkout ešte neodniesol do obchodu, pošlite najprv PUT s
{"buyer": null}: kupujúceho odstráni z relácie aj zo všetkých ďalších
odpovedí. Doručovaciu adresu odstrániť nemožno, iba nahradiť. Po odovzdaní
PUT nič nezmení, zrušenie však platí aj vtedy. Checkout vytvorený z košíka
košík nemení a zrušenie jedného nikdy nezruší druhý: vyčistite a zrušte oba.
Kým je košík otvorený, jeho opätovný prevod vráti jeho otvorený checkout —
aj s údajmi kupujúceho — každému, kto má id košíka. Odpovede uložené pod vašimi
hodnotami Idempotency-Key si to, čo obsahovali, ponechajú, kým sa
nevymažú — 25 hodín od zabratia kľúča.
Čo API nikdy nerobí
- Neposiela žiadne webhooky a nezverejňuje podpisové kľúče; nič nepodpisuje a žiadny podpis nekontroluje.
- Nedokončuje objednávky:
POST …/completežiadnu nevytvorí. - Nikdy nečíta ani nezapisuje stav vašej platformy; jedinou odchádzajúcou požiadavkou je stiahnutie profilu.
Ako sú obchody oddelené
| Vrstva | Pravidlo |
|---|---|
| Hostiteľ → obchod | Databázová funkcia priradí hostiteľa k obchodu, iba ak je hostiteľ doménou tohto obchodu s overeným DNS a aktívnym certifikátom a kľúč obchodu je aktívny, platný a má zapnutý vstavaný obchod. Obchod s vypnutým UCP alebo so zamknutým modulom E-shop odpovedá presne ako neznámy hostiteľ. |
| Každý dopyt | Každý príkaz, ktorý požiadavka spustí nad údajmi UCP, uvádza firmu. Relácia aj kľúč idempotencie sa hľadajú podľa firmy a obchodu spolu; príkazy, ktoré reláciu potom menia, ju adresujú v rámci jej firmy — podľa jej id, alebo pri objednávke, ktorá checkout dokončí, podľa košíka obchodu, z ktorého bola objednávka vytvorená. |
| Row-level security | Obe tabuľky UCP (relácie a kľúče idempotencie) majú navyše pravidlá row-level security, ktoré riadok obmedzia na jeho firmu, a ich väzby na obchod odkazujú na tú istú firmu. Oddelenie, na ktoré sa API spolieha, však nestojí na týchto pravidlách, ale na výslovných podmienkach uvedených vyššie. |
| Overenie | CI Monokaida spúšťa príkazy UCP doslovne nad skutočnou databázou PostgreSQL a overuje okrem iného, že relácia iného obchodu sa nenájde a že pri row-level security jedna firma nevie čítať ani zapisovať relácie a kľúče inej firmy. |
| Relácie | Hľadajú sa iba podľa id spolu s firmou a obchodom: relácia iného obchodu je not_found, aj v rámci tej istej firmy. |
continue_url | Jeho token sa hľadá iba v obchode, na ktorého doméne bol otvorený. |
Idempotency-Key | Ukladá sa pre každý obchod a každú adresu profilu zvlášť. |
| Vymazanie | Vymazanie obchodu alebo firmy vymaže aj ich relácie a kľúče. |
Obchody zdieľajú rozpočty požiadaviek: limity požiadaviek sa počítajú podľa IP adresy klienta, nie podľa obchodu, a rozpočet na sťahovanie nových profilov platforiem je spoločný pre všetky obchody. Pozrite Limity požiadaviek.
Čo API prijíma
Kód UCP číta tieto polia a hlavičky požiadaviek a nič iné; každé ďalšie pole tela sa ignoruje a neukladá.
| Kde | Čítané polia |
|---|---|
| Košík a checkout | line_items[].item.id, line_items[].quantity; buyer.first_name, last_name, email, phone_number; context.address_country, address_region, postal_code, language, currency; discounts.codes; cart_id |
| Doručenie (rozšírenie fulfillment; košík ho tiež uloží, ale nikdy nepoužije) | adresa spôsobu dopravy — street_address, extended_address, address_locality, address_region, postal_code, address_country, first_name, last_name, phone_number, id — jeho selected_destination_id a groups[0].selected_option_id |
| Katalóg | query, filters.price, filters.categories (odmietne sa, ak obsahuje hodnotu), pagination, ids, id, selected, context; z požiadavky na katalóg sa do databázy neuloží nič |
| Hlavičky | Host, UCP-Agent, Idempotency-Key, Accept-Language, Content-Type, Content-Encoding a IP adresa klienta, ktorú prepošle webový server; pri vlastnej požiadavke stránky odovzdania aj Authorization (prihlásenie kupujúceho do obchodu) |
Textové hodnoty sa pred použitím vyčistia: riadiace znaky sa zmenia na medzery, znaky nulovej šírky a znaky smeru textu sa odstránia, okrajové medzery sa orežú a každé pole sa skráti na svoju maximálnu dĺžku.
Čo API ukladá a ako dlho
| Údaje | Kde | Uchovávajú sa do |
|---|---|---|
| Kupujúci: mená, e-mail, telefónne číslo | relácia | 30 dní po expires_at relácie |
| Kontext: krajina, región, PSČ, jazyk, mena | relácia | rovnako |
| Doručovacia adresa s menami a telefónnym číslom a zvolená možnosť dopravy | relácia | rovnako |
| Zľavové kódy, jazyk relácie, adresa vášho profilu (celá, aj s query stringom) | relácia | rovnako |
Posledná odpoveď: položky, súčty, kupujúci, adresa, continue_url | relácia | rovnako |
| Záznamy o odovzdaní: haše SHA-256 id relácie hosťovského košíka prehliadača (alebo id zákazníka obchodu) spolu s verziou relácie a id košíkov obchodu, do ktorých položky prešli | relácia | rovnako |
| Id a číslo objednávky po dokončení; čas vytvorenia, poslednej zmeny, odovzdania, dokončenia a zrušenia | relácia | rovnako |
| Odpoveď na váš zápis, celá — vrátane tých istých údajov kupujúceho | uložený výsledok Idempotency-Key | 25 hodín od zabratia kľúča (vymaže sa počas nasledujúcej hodiny) |
| Samotný kľúč ako SHA-256 adresy vášho profilu a kľúča a odtlačok vášho zápisu: SHA-256 operácie, id v ceste a tela | rovnako | rovnako |
| Košík obchodu, ktorý nacení každú reláciu: položky, zľavový kód, mena a jazyk — bez údajov kupujúceho | údaje košíkov obchodu | UCP ho nemaže; keď sa relácia uzavrie alebo jej uplynie platnosť, vyradí sa zo štatistík košíkov obchodu |
| To, čo kupujúci zadá v pokladni obchodu | objednávka obchodu | podľa pravidiel uchovávania obchodu; mimo UCP |
expires_at je 7 dní po poslednom vytvorení alebo PUT košíka a 24 hodín
pri checkoute. Relácia teda drží údaje kupujúceho najviac zhruba 37 dní po
poslednom zápise do košíka a zhruba 31 dní po poslednom zápise do checkoutu.
Ako sa ukladajú. Relácie a uložené odpovede sú riadky databázy PostgreSQL platformy obchodu; kupujúci, kontext, doručovacia adresa a posledná odpoveď sú v nej ako obyčajné stĺpce JSON. API ich na úrovni aplikácie nešifruje; zabezpečenie na úrovni riadkov opísané vyššie obmedzuje každý riadok na jeho firmu. Kde databáza beží, ako je šifrované jej úložisko a kto v Monokaide k nej smie pristupovať, nie je súčasťou zmluvy tohto API: opýtajte sa na support@monokaido.com.
Mazanie beží každú hodinu, 23 minút po celej, a vymaže výsledky
idempotencie staršie ako 25 hodín a relácie, ktorých expires_at je viac ako
30 dní v minulosti, v dávkach po 5 000 riadkov na tabuľku, opakovane, kým
nezostane nič alebo kým neprebehne 50 dávok (zvyšok pokračuje o hodinu).
Neukladá sa: surové telo požiadavky (iba polia uvedené vyššie a odtlačok), nič z požiadaviek na katalóg, žiadne platobné údaje ani IP adresy či reťazce User-Agent — tabuľky UCP žiadne nemajú. IP adresu klienta API používa iba v pamäti, pre limity požiadaviek a pre rozpočet sťahovania profilov.
Neexistuje koncový bod na vymazanie. Ak chcete uchovať menej: posielajte
iba to, čo nákup potrebuje (pozrite nižšie), pred odovzdaním odstráňte
kupujúceho z otvorenej relácie cez PUT s "buyer": null (PUT košíka
opakuje jeho line_items) a zrušte, čo už nepotrebujete. Po odovzdaní PUT
nič nezmení; zrušenie platí aj vtedy.
Žiadne platobné údaje, zámerne
Každý profil obchodu a každá odpoveď s checkoutom nesie payment_handlers: {}:
obchod cez UCP neprijíma žiadny platobný prostriedok. POST …/complete nič
nestrhne a žiadnu objednávku nevytvorí. Pripravený checkout je
requires_escalation a kupujúci zaplatí vo vlastnej pokladni obchodu,
platobnými metódami obchodu, po otvorení continue_url. Žiadne pole API
nenesie údaje o karte, platobné tokeny ani prístupy k peňaženkám; čokoľvek
také pošlete, sa ignoruje a neuloží. Nikdy to neposielajte.
Dokončený checkout znamená, že objednávka bola vytvorená, nie že bola zaplatená. Výsledok platby je vecou kupujúceho a obchodu.
Token odkazu na odovzdanie
continue_url vyzerá ako https://shop.example.com/ucp/continue/9bbd3ded…ec780b.
| Vlastnosť | Hodnota |
|---|---|
| Formát | 64 hexadecimálnych znakov malými písmenami. |
| Náhodnosť | Odvodený z dvoch náhodných UUID verzie 4, ktoré vygeneruje databáza (najviac 244 náhodných bitov); jedinečný naprieč všetkými reláciami. |
| Vzťah k id relácie | Žiadny: odkaz id relácie nikdy neobsahuje a token nedáva prístup k API /ucp/v1. |
| Platnosť | Počas životnosti relácie sa nemení. Funguje, kým je relácia otvorená a pred jej expires_at, a iba na doménach jej vlastného obchodu; potom stránka odpovie 410, prípadne 404, keď obchod UCP už neposkytuje. |
| Odpovede | V dokončených a zrušených checkoutoch chýba. |
Čo odkaz dovolí tomu, kto ho má. Otvorenie v prehliadači pridá položky relácie a jej uplatnený zľavový kód do košíka, ktorý má tento prehliadač v obchode — do košíka prihláseného zákazníka, inak do hosťovského košíka — raz pre každý taký košík a každú verziu relácie, a pošle prehliadač ďalej do pokladne obchodu (odkaz košíka: na stránku košíka obchodu). Ukáže iba názov obchodu: žiadne údaje kupujúceho, žiadne ceny, žiadne id relácie. Odkaz, ktorý otvorí niekto iný, teda prezradí košík, nie kupujúceho, no objednávka tejto osoby z naplneného košíka môže váš checkout dokončiť. Kým je relácia otvorená, odkaz môže otvoriť ľubovoľný počet prehliadačov a každý dostane položky raz.
Stránka token chráni:
- API posiela
Referrer-Policy: no-referrera to isté pravidlo aj ako element<meta name="referrer">, ktorý platí pre každú požiadavku stránky (so stránkou prichádza aj všeobecná hlavička webového serveraReferrer-Policy: strict-origin-when-cross-origin; element má pred ňou prednosť), takže token nikdy neunikne v hlavičkeReferer; - je
no-storeaX-Robots-Tag: noindex, nofollow; - jej
Content-Security-Policypovoľuje iba jej vlastný vložený skript (podľa hašu), požiadavky na ten istý pôvod a vložené štýly a zakazuje vloženie do rámca, formuláre aj element<base>; - jej
GETnič nemení — náhľad odkazu ani prednačítanie do žiadneho košíka nič nepridá; položky sa presunú, až keď skript stránky prebehne v prehliadači; - skript neposiela cookies; používa iba prihlásenie do obchodu vo vlastnej karte prehliadača a prihlásenie do obchodu inej firmy sa počíta ako hosť;
- presmerováva iba na cesty v tom istom obchode;
- obe jej cesty sú obmedzené na 60 požiadaviek za minútu z jednej IP adresy.
Kde sa token objavuje: vo vašich odpovediach API (a v ich kópiách, ktoré Monokaido uchováva), v prehliadači kupujúceho (riadok s adresou a história) a v prístupovom logu webového servera obchodu, ktorý zaznamenáva riadky požiadaviek.
Odkaz dajte iba kupujúcemu, kanálom, ktorému dôverujete, vo chvíli, keď je checkout pripravený. Neotvárajte ho zo svojich serverov a nezverejňujte ho tam, kde ho môžu čítať iní.
Sťahovanie profilu platformy
Obchod si stiahne profil, ktorý uvádza váš UCP-Agent. Sťahovanie je
postavené tak, aby sa adresou profilu nedalo dostať nikam inam než na verejný
HTTPS server:
| Ochrana | Pravidlo |
|---|---|
| Schéma | Iba https://; bez používateľského mena a hesla v adrese; najviac 1000 znakov; ľubovoľný port. |
| Adresa | Hostiteľ sa preloží raz a adresa sa odmietne, ak je súkromná (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, unique-local a site-local adresy IPv6), loopback, nešpecifikovaná, link-local, carrier-grade NAT (100.64.0.0/10), na benchmarking (198.18.0.0/15), multicast alebo z bloku 240.0.0.0/4; adresy IPv6 mapované z IPv4 sa posudzujú podľa ich adresy IPv4 a prefixy NAT64 sa odmietajú. Spojenie je pripnuté na overenú adresu, takže ju DNS rebinding nezmení. |
| Presmerovania | Nesledujú sa. |
| Veľkosť a čas | Najviac 256 KiB; 3 sekundy bez dát, 5 sekúnd spolu. |
| Požiadavka | GET; jediné hlavičky, ktoré nastavuje, sú Accept: application/json a User-Agent: Monokaido-UCP/1.0 (+https://monokaido.com); bez cookies, bez prihlasovacích údajov. |
| Odpoveď | Platí iba 200; čítajú sa iba ucp.version a ucp.capabilities. |
| Objem | Najviac 5 nových adries profilu za minútu na klienta (adresu IPv4 alebo sieť IPv6 /64) a spolu 60 za minútu; známe profily sa držia v cache (pozrite Cache a rozpočty). |
Pre vašu stranu: váš profil je zámerne verejný. Podávajte ho ako statický JSON z verejnej HTTPS adresy a do jeho adresy nedávajte nič tajné: celá adresa sa uloží s každou reláciou, ktorú vytvoríte. Logy Monokaida ukazujú iba jej pôvod (origin) a cestu, nikdy query string. Profil sťahujú servery Monokaida, ktorých adresy táto príručka nezverejňuje a ktoré sa môžu meniť: nepodmieňujte profil zoznamom povolených IP adries (ak ich vaše pravidlá vyžadujú, aktuálne adresy si vyžiadajte od podpory).
Obsah z obchodu
Všetko v katalógu — názvy, popisy, názvy možností, obrázky — aj možnosti
dopravy a právne odkazy v checkoute je obsah obchodníka. description.html je
vlastné HTML obchodu, ktoré API nečistí; skracuje ho však na 50 000 znakov,
prípadne aj uprostred značky. Pred zobrazením ho vyčistite, alebo použite
description.plain. AI agent musí tento obsah brať ako údaje, nikdy ako
pokyny. Viac v kapitole Pre AI agentov.
UCP o obchode nedokazuje viac než jeho doménu a TLS certifikát: profil neobsahuje názov ani logo. Overte, že doména patrí obchodu, ktorý mal kupujúci na mysli.
Logy
| Kde | Čo sa zaznamenáva |
|---|---|
| API | Žiadny log požiadaviek. Jeho riadky logu k UCP môžu obsahovať id relácií, id objednávok, id variantov, zľavový kód, ktorý sa pri odovzdaní nepodarilo uplatniť, kódy mien, pôvod a cestu adresy profilu a správu (so zásobníkom volaní) neočakávanej chyby. Kód UCP do svojich riadkov logu nezapisuje meno, e-mail, telefónne číslo ani adresu kupujúceho. |
| Webový server obchodu | Pri každej požiadavke: IP adresa klienta, čas, riadok požiadavky (metóda, cesta a query string — vrátane id relácií a tokenov odovzdania), stav, veľkosť, Referer, User-Agent, id požiadavky a čas odpovede. Nezaznamenávajú sa telá požiadaviek ani ďalšie hlavičky. |
API nevracia žiadne id požiadavky. Ak pošlete X-Request-ID, webový server
vašu hodnotu zapíše do prístupového logu, takže vám pri hlásení problému
poslúži ako korelačné id; nedávajte doň nič tajné. Ako dlho sa tieto logy
uchovávajú, nie je súčasťou zmluvy tohto API.
Ochrana osobných údajov
- Predávajúcim je obchod. Kupujúci kupuje od obchodu — cez UCP rovnako ako na jeho webe — a samotný nákup prebehne v pokladni obchodu. Ktorá strana má pri údajoch kupujúceho z relácie UCP akú úlohu podľa predpisov o ochrane osobných údajov, určuje obchod a zmluvné podmienky Monokaida, nie toto API. Za to, čo zbiera a uchováva vaša platforma, zodpovedáte vy.
- Osobné údaje, ktoré API spracúva: mená, e-mail a telefónne číslo kupujúceho, doručovacia adresa a krajina, región a PSČ z kontextu — uložené tak dlho, ako uvádzajú tabuľky vyššie — a IP adresy klientov, držané v pamäti pre limity požiadaviek a zapísané do prístupového logu webového servera.
- Ukážte pravidlá obchodu.
linkscheckoutu nesú odkazy obchodu typuterms_of_serviceaprivacy_policy, ak ich obchod nastavil (zoznam môže byť prázdny). Ukážte ich kupujúcemu. - Posielajte iba to, čo nákup potrebuje. Checkout je pripravený s
položkami a platným
buyer.email, pri rozšírení fulfillment navyše s úplnou adresou, na ktorú obchod doručuje, a s možnosťou dopravy. Mená a telefónne číslo sú nepovinné a nič o kupujúcom sa do pokladne obchodu neprenesie: kupujúci tam svoje údaje zadá znova. Mená a telefón posielajte, iba ak ich potrebuje vaša cenová ponuka. - Údaje kupujúceho v obchode patria k objednávke obchodu a jeho vlastným pravidlám uchovávania, mimo UCP.
Kontrolný zoznam pre bezpečnostnú revíziu
- Volania idú iba na
https://na hostiteľa zendpoint, ktorý zverejňuje profil obchodu; certifikáty sa overujú; presmerovania sa nesledujú; TLS 1.3 sa vynucuje, ak to vaša politika vyžaduje. - Volania idú z vašich serverov, nikdy z prehliadača ani z aplikácie.
- Id košíkov a checkoutov sa ukladajú na serveri ako tajomstvá, nedávajú sa do zdieľaných adries ani do logov, ktoré čítajú iní, a mažú sa, keď už nie sú potrebné.
- Každý
Idempotency-Keyje náhodné UUID verzie 4. continue_urldostane iba kupujúci, vo chvíli odovzdania, a nikdy sa neotvára z vašich serverov.- Profil vašej platformy je statický JSON na verejnej HTTPS adrese a v jeho adrese nie je nič tajné.
- Neposielajú sa žiadne platobné údaje; kupujúci platí v obchode.
- Posielajú sa iba údaje kupujúceho, ktoré nákup potrebuje; kupujúci vidí
pravidlá ochrany súkromia obchodu z
links. - Obsah obchodu sa berie ako nedôveryhodný:
description.htmlsa pred zobrazením čistí a AI agent nikdy nenasleduje pokyny, ktoré v ňom nájde. - Kupujúci vie, že predávajúcim je obchod, a doména patrí obchodu, ktorý mal na mysli.
- Vaše vlastné uchovávanie údajov z UCP je určené a nie je dlhšie, než potrebujete.
- Pre uniknuté id relácie máte postup: kým sa dá, odstráňte kupujúceho cez
"buyer": nulla potom reláciu zrušte — košík aj checkout, ktorý z neho vznikol, každý zvlášť.
Nahlásenie bezpečnostného problému
Napíšte na support@monokaido.com a uveďte
doménu obchodu, čas (aj s časovým pásmom), požiadavku (metódu a cestu, bez
údajov kupujúceho) a, ak ste ju poslali, hodnotu X-Request-ID. Do správy
nedávajte id relácie ani continue_url: uveďte namiesto nich ich prvých osem
znakov.