Przejdź do głównej zawartości

Ustawienia bezpieczeństwa

Na stronie Bezpieczeństwo znajdziesz klucze API organizacji i wszystko, co chroni twój klucz publiczny przed nadużyciami.

Strona Bezpieczeństwo z kartami klucza publicznego, kluczy prywatnych, dozwolonych domen, ochrony przed nadużyciami, listy blokad, limitu żądań na IP i wyboru, co zrobić, gdy skończą się kredyty

Rola Dostęp
Właściciel, Administrator Widzi i zmienia wszystko.
Programista Tylko do odczytu: widzi klucze i ustawienia, ale nie ma żadnych przycisków, a pola są nieaktywne.
Obserwator, Płatności Brak dostępu – strona pokazuje komunikat, że ich rola na to nie pozwala.

Akcje na kluczach – Zmień klucz, Nowy klucz prywatny i Unieważnij – działają od razu po potwierdzeniu.

Klucze Turnstile w karcie Ochrona przed botami (Turnstile) zapisujesz osobnym przyciskiem karty Zapisz klucze.

Wszystkie pozostałe ustawienia na stronie (dozwolone domeny, przełączniki ochrony przed nadużyciami, aplikacje mobilne, lista blokad, limit żądań na IP, dozwolone domeny linków, e-maile na odbiorcę i wybór na wypadek braku kredytów) są tylko szkicem, dopóki nie klikniesz Zapisz w prawym górnym rogu. Przycisk jest aktywny tylko wtedy, gdy coś się zmieniło. Każde zapisanie trafia do dziennika zdarzeń jako security.updated.

Karta Klucz publiczny pokazuje twój klucz pk_… z przyciskiem kopiowania. To klucz, który umieszczasz na swojej stronie – można go bezpiecznie opublikować, bo żądania z nim są sprawdzane pod kątem dozwolonych domen, CAPTCHA i rate limitów. Zobacz Klucze publiczne i prywatne.

Zmień go, gdy mimo pozostałych zabezpieczeń widzisz nadużycia.

  1. Kliknij Zmień klucz.
  2. Potwierdź przyciskiem Zmień klucz w oknie Zmienić klucz publiczny?.
  3. Skopiuj nowy klucz i wdróż go na swojej stronie.

Stary klucz działa jeszcze przez 24 godziny. Do tego czasu karta pokazuje, który poprzedni klucz nadal działa i do kiedy. Potem żądania ze starym kluczem kończą się błędem invalid_public_key.

Klucze prywatne są tylko dla serwerów – Node SDK, cURL, twojego backendu. Tabela pokazuje dla każdego klucza Nazwa z datą utworzenia, cztery ostatnie znaki w kolumnie Klucz i kiedy był Ostatnio użyty (Nigdy, jeśli jeszcze nie był).

Organizacja może mieć maksymalnie 20 aktywnych kluczy prywatnych.

  1. Kliknij Nowy klucz prywatny.
  2. Wpisz Nazwa, po której poznasz, gdzie go używasz, np. „Backend produkcyjny”, i kliknij Utwórz.
  3. Okno Twój nowy klucz prywatny pokazuje pełny klucz. Skopiuj go od razu i zapisz w sekretach serwera albo w menedżerze haseł.
  4. Kliknij Zapisałem(-am) go w bezpiecznym miejscu.
  1. Kliknij Unieważnij w wierszu klucza.
  2. Potwierdź przyciskiem Unieważnij w oknie dialogowym.

Unieważnienie działa natychmiast – żądania z tym kluczem są od razu odrzucane z błędem invalid_private_key. Żeby wymienić klucz bez przestoju, najpierw utwórz nowy klucz, wdróż go, sprawdź, że Ostatnio użyty przy starym kluczu przestał się zmieniać, i dopiero wtedy unieważnij stary.

Z twoim kluczem publicznym mogą wysyłać tylko domeny wymienione w karcie Dozwolone domeny. Frontmail porównuje je z nagłówkiem Origin wysyłanym przez przeglądarkę. Szczegóły znajdziesz w artykule Dozwolone domeny.

Obsługiwane formaty:

Wpis Pasuje do
example.com Dokładnie tej domeny.
*.example.com Dowolnej subdomeny example.com.
localhost:3000 Hosta z konkretnym portem – przydatne przy lokalnym developmencie.

Jeśli wkleisz pełny adres, np. https://example.com/kontakt, panel zostawi z niego tylko hosta.

  1. Wpisz domenę w polu Dodaj domenę.
  2. Kliknij Dodaj (albo naciśnij Enter). Domena pojawi się jako etykieta nad polem.
  3. Kliknij Zapisz.

Żeby usunąć domenę, kliknij × w jej etykiecie, a potem Zapisz.

Ta karta przechowuje własne klucze Cloudflare Turnstile twojej organizacji. Szablony z włączoną opcją Wymagaj CAPTCHA (Turnstile) przyjmują żądania z twoich stron tylko z tokenem Turnstile, a Frontmail weryfikuje te tokeny kluczem tajnym zapisanym tutaj. Bez kluczy żądania ze stron do takich szablonów kończą się błędem captcha_not_configured.

Dlaczego własne klucze: darmowy plan Cloudflare pozwala na tylko 10 nazw hostów na widżet, więc jeden klucz Frontmail nie obejmie stron wszystkich klientów. Twój widżet jest darmowy i działa tylko na twoich hostach.

  1. W panelu Cloudflare otwórz Turnstile → Add widget, nadaj mu nazwę, dodaj nazwy hostów swojej strony (np. example.com, www.example.com; localhost tylko do testów), zostaw tryb Managed i kliknij Create.
  2. Skopiuj Site Key i Secret Key.
  3. Wróć na stronę Bezpieczeństwo, wklej oba klucze w karcie Ochrona przed botami (Turnstile) i kliknij Zapisz klucze.
  4. Kliknij Włącz CAPTCHA we wszystkich szablonach, żeby jednym kliknięciem włączyć ją we wszystkich istniejących szablonach. Szablony używane jako automatyczna odpowiedź są pomijane.

Przy zapisie Frontmail najpierw sprawdza klucz tajny w Cloudflare – błędny klucz zostanie odrzucony z czytelnym komunikatem i nic nie zostanie zapisane. Klucze zapisują się od razu (przycisk Zapisz całej strony nie jest potrzebny) i trafiają do dziennika zdarzeń jako security.turnstile.updated; włączenie CAPTCHA we wszystkich szablonach jest rejestrowane jako template.captcha_enabled.

  • Klucz tajny można tylko zapisać: jest przechowywany w postaci zaszyfrowanej i nigdy więcej nie jest wyświetlany – karta pokazuje tylko klucz witryny i od kiedy klucze są skonfigurowane. Żeby je zmienić, kliknij Zastąp klucze i wklej nowe; żeby przestać ich używać, kliknij Usuń klucze i potwierdź pytanie Usunąć klucze Turnstile? (security.turnstile.removed). Szablony zachowują ustawienie CAPTCHA, więc po usunięciu kluczy żądania ze stron do nich będą kończyć się błędem, dopóki znów nie dodasz kluczy.
  • Gdy klucze są zapisane, nowe szablony mają CAPTCHA włączoną domyślnie. Szablony utworzone wcześniej zachowują swoje ustawienie.
  • Karta Kod w edytorze szablonu zawiera wtedy widżet z twoim kluczem witryny.
  • Do lokalnego developmentu możesz użyć kluczy testowych Cloudflare – nigdy w produkcji.

Aplikacje mobilne zbudowane z @frontmail/react-native nie potrzebują tych kluczy – używają wspólnego klucza mobilnego Frontmail.

To, czy szablon wymaga CAPTCHA Turnstile, ustawiasz osobno dla każdego szablonu w edytorze, a nie tutaj – zobacz Turnstile. Karta Ochrona przed nadużyciami ma cztery przełączniki:

Przełącznik Co robi
Blokuj przeglądarki headless Odrzuca żądania z kluczem publicznym z automatycznych przeglądarek, takich jak Puppeteer. Domyślnie wyłączony. Zobacz Ochrona przed botami.
Ścisłe parametry Odrzuca żądania z parametrami, których nie ma w schemacie szablonu, zamiast je ignorować. Domyślnie wyłączony.
Zezwól na API z kluczem prywatnym Pozwala twoim serwerom wysyłać kluczem prywatnym, przy którym sprawdzanie domeny jest pomijane. Domyślnie włączony. Wyłącz go, jeśli wysyłasz tylko z przeglądarek – żądania z kluczem prywatnym będą wtedy odrzucane z błędem 403 forbidden.
Zezwól na klucze prywatne w przeglądarkach Przyjmuje żądania z kluczem prywatnym wysłane ze strony internetowej (z nagłówkiem Origin). Domyślnie wyłączony – takie żądania są odrzucane z błędem 403 private_key_in_browser, bo każdy odwiedzający stronę mógłby skopiować klucz. Włączaj go tylko dla narzędzi wewnętrznych; po włączeniu pojawi się ostrzeżenie. Zobacz Klucze.

Po zmianie przełącznika pamiętaj, żeby kliknąć Zapisz.

Aplikacje natywne (React Native, Flutter, Swift, Kotlin) nie wysyłają nagłówka Origin, więc ich żądania – jak każde żądanie z kluczem publicznym bez Origin i Referer – są odrzucane z błędem 403 origin_not_allowed, nawet jeśli nie ustawiono żadnych dozwolonych domen. Karta Aplikacje mobilne ma jeden przełącznik, Zezwól na aplikacje mobilne (domyślnie wyłączony). Gdy jest włączony, żądania z kluczem publicznym bez nagłówka Origin i Referer są przyjmowane, a ich CAPTCHA jest weryfikowana wspólnym kluczem mobilnym Frontmail. Żądania ze stron nadal są sprawdzane z listą. Szczegóły znajdziesz w części Dozwolone domeny → Aplikacje mobilne.

  1. Włącz Zezwól na aplikacje mobilne.
  2. Przeczytaj ostrzeżenie, które pojawi się pod przełącznikiem.
  3. Kliknij Zapisz.

Lista blokad zatrzymuje znanych spamerów, zanim ich żądania zużyją jakiekolwiek kredyty.

  • Zablokowane wartości – jedna w linii: adresy e-mail, domeny (spam.example albo @spam.example) lub dokładne wartości parametrów.
  • Sprawdzany parametr – parametr porównywany z listą oprócz odbiorców, np. email z adresem odwiedzającego w formularzu kontaktowym.

Pasujące żądania kończą się błędem recipient_blocked. Więcej w części Ochrona przed botami → Lista blokad.

Limit żądań na IP określa, jak często jeden odwiedzający może wysyłać twoje formularze z kluczem publicznym. Ustaw Żądania (1–1000) i Na (sekund) (1–86 400); zdanie pod polami podsumowuje wynik. Domyślnie to 10 żądań na 60 sekund. Żądania ponad limit dostają 429 rate_limited i nie zużywają kredytów. Żądania z kluczem prywatnym nie są limitowane na IP – zobacz Rate limity.

Gdy szablon bierze odbiorcę z parametrów i jest wysyłany kluczem publicznym – oraz w każdej automatycznej odpowiedzi – linki w e-mailu mogą prowadzić tylko do domen, którym ufasz. Linki wpisane bezpośrednio w szablonie i twoje dozwolone domeny są zawsze dozwolone; inne domeny dodaj w Dozwolone domeny linków, jedną w linii: example.com (dokładnie ten host) albo *.example.com (tylko subdomeny). Nieprawidłowe linie są oznaczane i blokują Zapisz. Żądania z linkiem gdzie indziej kończą się błędem link_not_allowed. Zobacz Dozwolone linki i blokada treści.

E-maile na odbiorcę dziennie (1–1000, domyślnie 5) ogranicza, ile e-maili z dynamicznym odbiorcą (klucz publiczny) i automatycznych odpowiedzi może dostać jeden adres dziennie (UTC). Ponad limit żądania kończą się błędem 429 rate_limited (details.scope: "recipient") i automatyczna odpowiedź nie jest tworzona.

Ta karta decyduje, co dzieje się z nowymi e-mailami, gdy organizacji zabraknie kredytów:

Opcja Działanie
Wstrzymuj e-maile (Zalecane, domyślnie) E-maile są przyjmowane i czekają we Wstrzymanych wiadomościach. Zostaną wysłane automatycznie, gdy dodasz kredyty.
Odrzucaj żądania API odpowiada 402 insufficient_credits i nic nie jest zapisywane – to twoja strona decyduje, co powiedzieć odwiedzającemu.

Wybierz opcję i kliknij Zapisz. Pełny obraz, w tym to, jak zwalniane są wstrzymane e-maile, znajdziesz w artykule Kolejka wstrzymanych wiadomości.