Udostępnij przez


Zabezpieczanie parametrów połączenia

pobierz sterownik JDBC

Ochrona dostępu do źródła danych jest jednym z najważniejszych celów ułatwiania zabezpieczania aplikacji. Aby ograniczyć dostęp do źródła danych, należy podjąć środki ostrożności, aby zabezpieczyć informacje o połączeniu, takie jak identyfikator użytkownika, hasło i nazwa źródła danych. Przechowywanie identyfikatora użytkownika i hasła w postaci zwykłego tekstu, na przykład w kodzie źródłowym, stanowi poważny problem z zabezpieczeniami. Nawet jeśli podasz skompilowaną wersję kodu zawierającego identyfikator użytkownika i informacje o haśle w źródle zewnętrznym, skompilowany kod może zostać potencjalnie zdezasemblowany, a identyfikator użytkownika i hasło zostaną ujawnione. W związku z tym konieczne jest, aby krytyczne informacje, takie jak identyfikator użytkownika i hasło, nie istniały w kodzie.

Rekomendacje

Zaleca się, aby nie przechowywać hasła razem z adresem URL połączenia w kodzie źródłowym aplikacji. Zamiast tego rozważ zapisanie hasła w osobnym pliku, który ma ograniczony dostęp. Dostęp do tego pliku można udzielić kontekstowi, w którym aplikacja jest uruchomiona.

Innym podejściem jest przechowywanie zaszyfrowanego hasła w pliku. Upewnij się, że używasz interfejsu API szyfrowania, który nie wymaga przechowywania klucza w jakimś miejscu i nie pochodzi z hasła użytkownika. Można na przykład rozważyć użycie par kluczy publicznych/prywatnych opartych na certyfikatach lub użyć podejścia, w którym dwie strony używają protokołu umowy klucza (Diffie-Hellman algorytmu) do generowania identycznych kluczy tajnych do szyfrowania bez konieczności przesyłania klucza tajnego.

Jeśli pobierasz informacje o parametrach połączenia ze źródła zewnętrznego, na przykład użytkownik podający identyfikator użytkownika i hasło, musisz zweryfikować wszelkie dane wejściowe ze źródła, aby upewnić się, że jest on zgodny z poprawnym formatem i nie zawiera dodatkowych parametrów, które mają wpływ na połączenie.

Zobacz także

Zabezpieczanie aplikacji sterowników JDBC