Bezpieczeństwo

Gdzie przechowywać hasła i klucze API aplikacji?

Sekrety w .env, repozytorium, logach i backupach. Jak ograniczyć dostęp, rozdzielić środowiska i zareagować na wyciek tokenu.

KRÓTKA ODPOWIEDŹ

Sekrety trzymaj poza publicznym kodem, z ograniczonym dostępem i osobnymi wartościami dla testów oraz produkcji. Usunięcie ujawnionego tokenu z pliku nie zastępuje jego unieważnienia.

Co zalicza się do sekretów?

Hasło bazy, klucz płatności, token SMTP, prywatny klucz SSH i podpisujący sekret webhooka. Część identyfikatorów jest publiczna, lecz nie zgaduj na podstawie nazwy zmiennej. Sprawdź, jakie uprawnienia daje dana wartość.

Zapisz, kto korzysta z sekretu, gdzie się go ustawia i jak go odwołać. Token z prawem do wszystkiego jest wygodny tylko do pierwszego wycieku. Przydziel najmniejszy zakres wymagany przez integrację.

.env nie jest automatycznie bezpieczny

Plik konfiguracyjny może działać poprawnie, a jednocześnie być dostępny po HTTP wskutek błędnej konfiguracji serwera. Przechowuj go poza katalogiem publicznym, jeśli aplikacja i hosting na to pozwalają. W przeciwnym razie zastosuj właściwą blokadę dostępu i sprawdź rzeczywistą odpowiedź HTTP bez ujawniania zawartości.

.gitignore zapobiega przypadkowemu dodaniu nowego pliku, lecz nie usuwa pliku już śledzonego ani historii repozytorium. Sprawdź też artefakty builda, pliki ZIP i kopie wysyłane wykonawcom. Backup z sekretami wymaga takiej samej ochrony jak produkcja.

Rozdziel testy i produkcję

Kopia sklepu nie powinna używać prawdziwego klucza płatności ani produkcyjnego SMTP. Nadaj osobne dane dla stagingu i, jeśli to możliwe, osobne uprawnienia. Test przywracania backupu wykonuj z odłączonymi integracjami, zanim uruchomisz zadania w tle.

Zmienne środowiskowe są jednym z mechanizmów konfiguracji, nie uniwersalnym sejfem. Procesy, diagnostyka i uprawnienia użytkownika mogą ujawniać ich wartości. Wybierz rozwiązanie pasujące do hostingu, a w większym środowisku rozważ dedykowany menedżer sekretów.

Nie zapisuj sekretów w logach

Loguj wynik operacji, identyfikator i potrzebny kontekst, ale maskuj Authorization, hasła, tokeny i prywatne dane. Błąd połączenia z API nie wymaga wydrukowania pełnego nagłówka. Przejrzyj także monitorowanie błędów i narzędzia analityczne, które mogą przechwytywać żądania.

Kiedy zgłaszasz problem obsłudze, przekaż zanonimizowany komunikat i identyfikator zdarzenia. Nie wklejaj całego .env do zgłoszenia. To szczególnie istotne przy błędzie 502 i problemie z formularzem SMTP.

Po wycieku liczy się rotacja

Unieważnij ujawniony token, wydaj nowy i zaktualizuj aplikacje. Sprawdź historię użycia i zakres możliwych działań. Jeśli sekret trafił do repozytorium, uporządkuj też historię i kopie, ale przyjmij, że został skopiowany. Prywatność repozytorium po fakcie nie cofa ujawnienia.

Przy wdrażaniu aplikacji na hostingu lub VPS Castpol ustal dostępne mechanizmy konfiguracji i ogranicz dostęp wykonawców. Po zmianie przetestuj funkcję, która używa sekretu, oraz upewnij się, że stare dane przestały działać.

Źródła i dokumentacja

Dokumentacja do dalszej weryfikacji ustawień i wymagań swojej wersji.

c.
Castpol Blog

Poradnik wydawany przez Castpol. O blogu · Zgłoś poprawkę

KOLEJNY KROK

Te poradniki uzupełniają temat