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.