[ Pobierz całość w formacie PDF ]
.Nawet więc w przypadku najprostszej aplikacji WWW warto całkiem serio pomyśleć o bezpieczeństwie przetwarzanych przez nią danych.Na szczęście opracowano kilka skutecznych technik, mających na celu ochronę przetwarzania rozproszonego.Przede wszystkim należy dążyć do rzeczywistego rozproszenia danych — nie należy więc na przykład umieszczać bazy danych na serwerze WWW, lecz np.w odrębnym serwerze plików, oddzielonym od serwera WWW firewallem; wskazane jest również umieszczenie drugiego firewalla pomiędzy serwerem WWW a Internetem.Jeżeli nawet w tych warunkach niepowołanej osobie uda się dostać do serwera WWW (co już wymaga pokonania przynajmniej jednego firewalla) nie oznacza to jeszcze dostępu do użytecznych danych.Serwer WWW staje się tym samym czymś w rodzaju „strefy zdemilitaryzowanej” oddzielonej szeregiem firewalli i proxy zarówno od świata zewnętrznego, jak i od przetwarzanych danych.C++Builder 5 wraz z nowym komponentem TWebConnection udostępnia obsługę serwerów proxy.Komponent ten używany jest po stronie klienta w wielowarstwowych aplikacjach MIDAS (Multitier Distributed Application Services) i umożliwia aplikacji-klientowi połączenie się z odległą bazą danych (w wyższych warstwach modelu) za pośrednictwem proxy HTTP.Po stronie serwera WWW odpowiedzialność za połączenie z bazą danych spoczywa wówczas na bibliotece ISAPI o nazwie httpsvr.dll, która musi być uprzednio zainstalowana.Za pomocą właściwości Proxy komponentu TWebConnection możliwe jest podanie adresu IP serwera proxy, możliwe jest także określenie nazwy użytkownika (właściwość UserName) i jego hasła (właściwość Password); sam komponent TWebConnection nie zajmuje się przy tym weryfikacją nazwy i hasła użytkownika, lecz pełni rolę swoistego „routera” przekazującego te informacje do serwera proxy.Możliwa jest rezygnacja z serwera proxy, należy wówczas pozostawić niewypełnione właściwości Proxy, UserName i Password, możliwe jest także wykorzystanie połączeń „wysokopoziomowych”, jak TDCOMConnection czy TCORBAConnection zamiast „zwykłych” połączeń HTTP.SSL — warstwa bezpiecznych gniazdNiezależnie od różnych technik zabezpieczania dostępu do danych możliwe jest także zabezpieczenia samych danych na wypadek przechwycenia ich przez niepowołanego odbiorcę za pomocą np.podsłuchu — co nabiera szczególnego znaczenia w przypadku danych o wysokim stopniu tajności, jak np.numer karty kredytowej.Powszechnie wykorzystywanym zabezpieczeniem tego rodzaju jest szyfrowanie danych w oparciu o tzw.protokół bezpiecznych gniazd (ang.SSL — Secure Socket Layer) i przekazywanie ich w tej postaci w ramach (bezpiecznego) połączenia pomiędzy klientem a serwerem.Przeglądarki WWW sygnalizują fakt bezpiecznego połączenia za pomocą różnych odmian zamkniętej kłódki lub zamka, zaś prefiks adresu ma postać https:// (ang.S-HTTP — Secure HTTP) zamiast standardowego http://.Funkcjonowanie protokołu SSL opiera się na wykorzystaniu dwóch powiązanych ze sobą kluczy — publicznego i prywatnego, uzyskiwanych przez właściciela serwera z zaufanego źródła, np.VeriSign.Bezpieczne połączenie rozpoczyna się od przesłania klientowi przez serwer klucza publicznego.Klient następnie szyfruje podlegające przesłaniu dane za pomocą tego klucza i w takiej postaci wysyła je do serwera.Ewentualne przechwycenie zarówno klucza publicznego, jak i zaszyfrowanych danych nie stanowi żądnego zagrożenia, dane te mogą być bowiem rozszyfrowane jedynie przy użyciu klucza prywatnego — ten zaś znany jest tylko serwerowi, a algorytm szyfrowania wyklucza uzyskanie go na podstawie klucza publicznego w rozsądnym czasie.Szyfrowanie i deszyfracja danych jest immanentną cechą samego połączenia i jako takie jest ono „przezroczyste” dla aplikacji serwera WWW
[ Pobierz całość w formacie PDF ]