> 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-lt/integracija/mobilusis-sdk/ios-sdk/gaires/saugumas.md).

# Saugumas

Apsaugokite kredencialus, kortelės duomenis ir perdavimą iOS integracijoje, ir saugiai registruokite įrašus.

Naudokite šį vadovą, jei peržiūrite iOS integraciją arba kuriate tokią, kuri turi praeiti peržiūrą.

Toliau pateiktos taisyklės yra reikalavimai, ne rekomendacijos.

***

## Kredencialai

**Visada laikykite shop kliento paslaptį ir OAuth 2.0 client-credentials apsikeitimą savo backend'e.** Niekada neįtraukite nė vieno iš jų į programėlę. Bet kas, turintis shop kliento paslaptį, gali kurti mokėjimus jūsų parduotuvės vardu, o bet kas, kas įdėta į programėlės dvejetainį failą, yra atkuriama.

Programėlė gauna tik kiekvienam mokėjimui skirtas reikšmes:  `paymentId`,  `verificationKey`, ir atsiskaitymo nuorodą.

**Niekada neregistruokite ir neišsaugokite patvirtinimo rakto.** Tai kliento pusės kredencialas, taikomas vienam mokėjimui, ir jis autorizuoja su tuo mokėjimu susietus SDK kvietimus. Jis neturėtų galioti ilgiau nei mokėjimas.

SDK neišsaugo jokių kredencialų, nekaupia jų talpykloje ir neregistruoja. Jo būsenos sesija yra laikina.

***

## Užsakymo įvykdymas

{% hint style="warning" %}
**Niekada nelaikykite SDK rezultato leidimu įvykdyti užsakymą.** Užsakymo įvykdymą grindkite pranešimais, kuriuos platforma siunčia jūsų backend'ui, ir prieš imdamiesi veiksmų patvirtinkite būseną per API.
{% endhint %}

Programėlės rezultatas yra UX signalas, sugeneruotas įrenginyje, kuris bet kuriuo metu gali prarasti ryšį, būti pristabdytas arba sustabdytas. Jis nurodo, ką rodyti pirkėjui.

***

## Kortelės duomenys

Talpinamo atsiskaitymo metu jūsų programėlė niekada nemato kortelės duomenų. Juos surenka talpinamas puslapis.

Natyvioje kortelės formoje kortelės duomenys įrenginyje užšifruojami prieš pirmąjį tinklo iškvietimą, kuriuo jie perduodami, naudojant RSA-OAEP-256 raktų šifravimą ir AES-256-GCM turinio šifravimą JWE kompaktiškoje serializacijoje. Šifravimo raktas kiekvienai sesijai gaunamas iš atsiskaitymo prieglobos ir niekada nekaupiamas tarp mokėjimų.

Neapdorotas kortelės numeris ir saugos kodas egzistuoja tik `CardInput`jo savybėse ir paprastajame tekste, kurį SDK sukuria iškart prieš šifruodamas. Nei vienas iš jų nerašomas į diską ir nei vienas neregistruojamas.

{% hint style="warning" %}
**Niekada nedėkite neapdorotų kortelės laukų niekur kitur.** Ne jūsų žurnaluose, ne analizės įvykiuose, ne gedimų ataskaitose, ne jūsų pačių saugykloje ir ne jokioje jūsų pačių užklausoje. Užšifruota reikšmė yra vienintelis kortelės duomenų artefaktas, kuris turėtų palikti įrenginį.
{% endhint %}

Laikykite kortelės formą atokiau nuo ekrano nuotraukų ir ekrano įrašų, jei to reikalauja jūsų grėsmių modelis, ir pakartotinai nenaudokite  `CardInput` per mokėjimus.

***

## Perdavimas

**Sertifikatų tikrinimas niekada nėra apeinamas.** SDK neįgyvendina jokio sertifikato iššūkio apdorojimo jokioje jo sukurtoje žiniatinklio peržiūroje, įskaitant 3-D Secure iššūkio peržiūrą. App Transport Security taikomas įprastai, o tikimasi, kad kiekvienas prieglobos serveris, su kuriuo bendrauja SDK, naudos HTTPS.

Nedėkite `NSAllowsArbitraryLoads` į savo programėlės `Info.plist`. Ji išjungia App Transport Security visiems programėlės domenams, įskaitant tuos, kuriais perduodamas mokėjimų srautas.

***

## Registravimas

Registravimas pagal numatytuosius nustatymus išjungtas. Kai `loggingEnabled` nustatyta į `true`, SDK srauto etapus įrašo per `os_log` ir:

* registruoja URL kaip `scheme://host/…` tik, nes atsiskaitymo URL savo kelyje turi mokėjimo ID ir verificationKey;
* niekada neregistruoja užklausos ar atsakymo turinio;
* niekada neregistruoja kortelės duomenų, šifravimo paprastojo teksto, kredencialų ar verificationKey.

Taikykite tą pačią discipliną savo pačių registravimui aplink SDK. Jūsų turimos reikšmės, `paymentId` ir `orderNumber`, yra mokėjimo metaduomenys: nukreipkite juos taip, kaip jūsų organizacija nukreipia mokėjimo metaduomenis, ir visiškai nelaikykite `verificationKey` ir kortelės laukų žurnaluose.

***

## Kontrolinis sąrašas

* Kliento kredencialai laikomi tik backend'e.
* verificationKey perduodamas programėlei, naudojamas ir neišsaugomas.
* Užsakymo įvykdymą lemia backend'as, o ne programėlės rezultatas.
* Neapdoroti kortelės laukai niekada neišeina iš `CardInput`.
* Paskelbtame rinkinyje nėra jokių App Transport Security išimčių.
* Jokių mokėjimo reikšmių analizėje, gedimų ataskaitose ar trečiųjų šalių registravime.


---

# 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-lt/integracija/mobilusis-sdk/ios-sdk/gaires/saugumas.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.
