> For the complete documentation index, see [llms.txt](https://docs.ecommerce.seb.ee/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ecommerce.seb.ee/seb-docs-draft/seb-docs-public-et/integratsioon/mobiilne-sdk/ios-sdk/juhendid/turvalisus.md).

# Turvalisus

Kaitske iOS-integratsioonis volitusi, kaardiandmeid ja transporti ning logige turvaliselt.

Kasutage seda juhendit, kui te kontrollite iOS-i integratsiooni või ehitate sellist, mis peab läbima kontrolli.

Alltoodud reeglid on nõuded, mitte soovitused.

***

## Mandaadid

**Hoidke poe kliendisaladus ja OAuth 2.0 kliendi volituste vahetus alati oma taustsüsteemis.** Ärge kunagi lisage kumbagi rakendusse. Igaüks, kellel on poe kliendisaladus, saab teie poe nimel makseid luua ning kõik, mis tarnitakse rakenduse binaaris, on taastatav.

Rakendus saab ainult makse kohta käivaid väärtusi: üks `paymentId`, üks `verificationKey`, ja kassalinki.

**Ärge kunagi logige ega salvestage verifitseerimisvõtit.** See on kliendipoolne volitus, mis on piiratud ühe maksega ja lubab SDK tehtavaid maksega seotud päringuid. See ei tohiks kesta kauem kui makse.

SDK ei salvesta ühtegi volitust, ei kasuta vahemälu ega logi midagi. Selle olekuseanss on lühiajaline.

***

## Tellimuse täitmine

{% hint style="warning" %}
**Ärge kunagi käsitlege SDK tulemust kui luba tellimuse täitmiseks.** Alustage täitmist platvormi saadetud teavituste põhjal oma taustsüsteemile ning kinnitage olek enne tegutsemist API kaudu.
{% endhint %}

Rakenduse tulemus on kasutajakogemuse signaal, mis luuakse seadmes, mis võib igal hetkel ühenduse kaotada, peatuda või sulguda. See ütleb teile, mida ostjale kuvada.

***

## Kaardiandmed

Hostitud kassas ei näe teie rakendus kunagi kaardiandmeid. Hostitud leht kogub need.

Natiivses kaardivormis krüpteeritakse kaardiandmed seadmes enne esimest võrgupäringut, mis neid edastab, kasutades RSA-OAEP-256 võtmekrüptimist ja AES-256-GCM sisu krüptimist JWE kompaktse serialiseerimise vormis. Krüpteerimisvõti hangitakse kassaserverist iga seansi jaoks ja seda ei vahemällu salvestata maksete vahel.

Toor-kaardinumber ja turvakood eksisteerivad ainult `CardInput`omadustes ja tekstis, mille SDK koostab vahetult enne krüptimist. Kumbagi ei kirjutata kettale ega logita.

{% hint style="warning" %}
**Ärge pange toor-kaardivälju mitte kuhugi mujale.** Mitte teie logidesse, mitte analüütikasündmustesse, mitte krahhiaruannetesse, mitte teie enda salvestusse ega ühtegi teie enda päringusse. Krüpteeritud väärtus on ainus kaardiandmete artefakt, mis peaks seadmest lahkuma.
{% endhint %}

Hoidke kaardivorm ekraanipiltidest ja ekraanisalvestustest eemal, kui teie ohumudel seda nõuab, ning ärge taaskasutage ühte `CardInput` maksete vahel.

***

## Edastus

**Sertifikaadi valideerimist ei asendata kunagi.** SDK ei rakenda ühtegi sertifikaadiväljakutse käsitlejat üheski loodavas veebivaates, kaasa arvatud 3-D Secure'i väljakutsevaates. App Transport Security kehtib tavapäraselt ning eeldatakse, et iga host, millega SDK suhtleb, on HTTPS.

Ärge lisage `NSAllowsArbitraryLoads` oma rakenduse `Info.plist`. See lülitab App Transport Security välja kõigi rakenduse domeenide jaoks, sealhulgas nende jaoks, mis kannavad maksetrafikut.

***

## Logimine

Logimine on vaikimisi väljas. Kui `loggingEnabled` on seatud `true`, kirjutab SDK voo vahe-etappe läbi `os_log` ja:

* logib URL-id kujul `scheme://host/…` ainult, sest kassaalide URL-id sisaldavad oma teekonnas makse ID-d ja verifitseerimisvõtit;
* ei logi kunagi päringu ega vastuse sisu;
* ei logi kunagi kaardiandmeid, krüptimisele eelnevat teksti, volitusi ega verifitseerimisvõtit.

Rakendage sama distsipliini ka oma logimisele SDK ümber. Väärtused, mida te hoiate, `paymentId` ja `orderNumber`, on makse metaandmed: suunake neid nii, nagu teie organisatsioon suunab makse metaandmeid, ning hoidke `verificationKey` ja kaardiväljad logidest täielikult eemal.

***

## Kontrollnimekiri

* Kliendi volitused asuvad ainult taustsüsteemis.
* Verifitseerimisvõti edastatakse rakendusele, kasutatakse ära ja ei salvestata.
* Täitmist juhitakse taustsüsteemist, mitte rakenduse tulemusest.
* Toor-kaardiväljad ei lahku kunagi `CardInput`.
* Tarneversioonis ei ole App Transport Security erandeid.
* Makseväärtusi ei ole analüütikas, krahhiaruannetes ega kolmanda osapoole logimises.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.ecommerce.seb.ee/seb-docs-draft/seb-docs-public-et/integratsioon/mobiilne-sdk/ios-sdk/juhendid/turvalisus.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
