Fiatside

Developers

Uwierzytelnianie

Jak punkt końcowy wyceny jest chroniony dziś, jak będą wydawane klucze oraz zasady postępowania, które pozwalają uniknąć klasycznego scenariusza: klucza produkcyjnego w publicznym repozytorium.

01

Dziś

Punkt końcowy wyceny jest otwarty i nie wymaga klucza. Wybór jest do obrony: wycena ani nie odczytuje, ani nie zapisuje danych osobowych, a integracja musi być w stanie pokazać cenę, zanim konto istnieje.

Czego jeszcze nie ma

Żaden limit szybkości nie jest dziś stosowany na tym punkcie końcowym. Wolelibyśmy to napisać, niż wyświetlać tabelę limitów, która nie jest egzekwowana: w dniu, w którym limit powstanie, zostanie opublikowany tutaj wraz z wartościami, nagłówkami odpowiedzi i kodem zwracanym po przekroczeniu.

02

Klucze, gdy już zostaną wydane

Klucz niesie swoje środowisko w prefiksie. Klucz testowy, który działałby w produkcji, byłby wadą projektową: umożliwia prawdziwy transfer, który myślałeś, że symulujesz.

Nagłówekhttp
Authorization: Bearer sk_live_9f2c4b1e8a7d3f60c5b2a1e9d8c7b6a5
Klucze, gdy już zostaną wydane
PrefiksŚrodowiskoCo umożliwia
sk_test_PiaskownicaKażda operacja na danych symulowanych. Bez rzeczywistego przepływu środków, bez kontaktu z instytucją płatniczą. Opóźnienia kanałów płatności są symulowane, aby Twoje testy napotykały te same czasy oczekiwania co w produkcji.
sk_live_ProdukcjaRzeczywiste operacje. Zamówienia utworzone za pomocą tego klucza przenoszą środki: nie może on nigdy opuścić Twojego serwera.
whsec_ObaTajny klucz podpisu webhooków. Nigdy nie jest używany do wywoływania API: służy wyłącznie do weryfikacji, że to, co otrzymujesz, rzeczywiście pochodzi od nas.
03

Zasady postępowania

Żadna z nich nie jest oryginalna. Wszystkie są regularnie łamane i właśnie w ten sposób dochodzi do wycieków kluczy.

Tylko po stronie serwera

Klucz produkcyjny w aplikacji webowej lub mobilnej jest kluczem publicznym: dostarczony kod jest czytelny, a minifikacja to nie szyfrowanie. Wywołuj API ze swojego serwera.

Nigdy w adresie URL

Jako parametr zapytania klucz trafia do logów serwera, nagłówków referrer i historii przeglądarki. Nagłówek Authorization istnieje właśnie po to.

Jeden klucz na integrację

Klucz współdzielony przez trzy usługi nie może zostać unieważniony bez zablokowania wszystkich trzech. Jeden klucz na zastosowanie sprawia, że unieważnienie jest bezbolesne.

Natychmiastowe unieważnienie przy jakichkolwiek wątpliwościach

Klucz wypchnięty do repozytorium przez pomyłkę, nawet prywatnego, nawet później usunięty, jest skompromitowany: historia go zachowuje, a roboty indeksujące czytają publiczne repozytoria w ciągu kilku minut.

04

Rotacja bez przestojów

Dwa klucze ważne jednocześnie pozwalają na rotację bez okna niedostępności.

  1. 1.Wydaj drugi klucz. Oba są ważne w tym samym czasie.
  2. 2.Wdróż nowy klucz na swoich serwerach, po jednym naraz.
  3. 3.Sprawdź, że nowy klucz otrzymuje ruch, a stary nie.
  4. 4.Unieważnij stary. Unieważnienie jest natychmiastowe, bez okresu przejściowego.
05

Czego nigdy nie zrobimy

  • Nigdy nie poprosimy Cię o klucz przez e-mail, czat lub telefon. Wsparcie go nie potrzebuje: działa na identyfikatorze klucza, a nie na tajnym kluczu.
  • Nigdy nie wyświetlamy tajnego klucza dwukrotnie. Jest widoczny przy tworzeniu, potem tylko jego identyfikator i cztery ostatnie znaki.
  • Nie wysyłamy kluczy e-mailem. E-mail przechodzi przez zbyt wiele podmiotów i jest przez nie przechowywany.