..
Od wprowadzenia na rynek, technologii Java daje ważną rolę w kwestii bezpieczeństwa. Choć z różnymi rezultatami, projektanci starali się stworzyć platformę systemów bezpieczeństwa realizowane bezpośrednio w odniesieniu do języka, dostępnych dla programistów.
W ciągłym procesie ewolucji i doskonalenia JVM stał się jednym z najważniejszych infrastruktury dla samodzielnych aplikacji, Internet, telefon komórkowy i inne, w tym artykule skupimy się na ewolucję modelu bezpieczeństwa, powszechnie nazywane piaskownicy, komentując błędów projektowych i aktualny status.
Ten artykuł jest przeznaczony dla wszystkich, czy są one doświadczonych programistów Java, którzy zupełnie na czczo czytelników na ten temat. Niektóre rozważania będą bardziej zrozumiałe dla tych, którzy posiadają już pewne doświadczenie w tym języku, ale czytanie tego artykułu jest odpowiedni dla każdego czytelnika.
Oryginalny model, znany jako piaskownica, został zaprojektowany, aby ograniczyć potencjalnie złośliwego kodu w odizolowanym środowisku i bardzo restrykcyjne. Java od samego początku, był silnie zorientowany do sieci i tym uwagę doprowadziły do opracowania modelu egzekucji, w której kod został pobrany bezpośrednio z pilota, narażając klienta do istotnych kwestii bezpieczeństwa.
W swojej pierwszej implementacji, przedstawiono schematycznie na rysunku, w piaskownicy tylko z grubsza odróżnić lokalnych i zdalnych kod kod: pierwszy cieszył pełny dostęp do wszystkich zasobów "krytyczne" systemu, takie jak, na przykład, systemów plików oraz różne urządzenia, kod zdalnego Wręcz przeciwnie, miał ograniczony dostęp do zasobów za pośrednictwem tej piaskownicy: aplety, obecnie w dużej mierze zniknął z sieci, byłem najbardziej znanym przykładem.

Model ten zawiera szereg mechanizmów bezpieczeństwa na różnych poziomach.
Przede wszystkim Java jest typu bezpieczne, tzn. że istnieje wyraźna zależność między zmienną i kontrolowane i jego typ (integer, floating point, łańcuch, itp. ..).
Ci, którzy mają zaprogramowane w językach z niskim / średnim poziomie, takich jak C i C + + wiem, jak wiele problemów można uniknąć tego sprawdzić: że zestaw konwersje niejawne między typów, takich jak całkowite lub logicznych wskaźników void do innych wskaźników, które są charakterystyczne tych języków w tym samym czasie stały się głównym źródłem błędów w programowaniu, równie zaangażowana zarówno dla początkujących jak i ekspertów.
Aby zminimalizować ryzyko, że zmiany dokonane błędów, projektanci w Sun wprowadził pewne aspekty tej pory znaleźć tylko w niszy lub językach poziomie uniwersyteckim, jak na przykład automatyczne zarządzanie pamięcią (garbage collection) i kontroli w czasie wykonywania dostępu do pamięci (wskaźniki, elementy tablicy, etc ...).
Drugi poziom ochrony jest zagwarantowany przez kompilator i czasu, przez maszynę wirtualną. Gwarantuje to, że kod bajtowy, kompilator z Java VM jest uruchamiany odpowiednie uprawnienia wykonywania. W szczególności dwa kluczowe komponenty, securityManager i ClassLoader, zdefiniować lokalną przestrzeń nazw, aby uniknąć interferencji pomiędzy różnymi instancjami VM i zarządzać prawami dostępu do krytycznych zasobów.
Przedstawiony model jest bardzo elastyczny w pierwszej aktualizacji JDK (wersja 1.1) wprowadzono pojęcie zaufanego kodu umożliwia zdalne aplikacje, jeżeli towarzyszy podpis elektroniczny uznawany przez klienta, dostęp do zasobów systemowych. Rozwiązanie przedstawione na poniższym rysunku, jest niewiele więcej niż hack poprzedniej architektury i wymagają całkowitego przepisania kodu w następnych wydaniach.

| |
Linux (Kurs)
Kompletny przewodnik po systemie open-source. Począwszy od 49 €. |
| |
MySQL (Kurs)
Zarządzanie bazą danych open-source. Począwszy od 39 €. |
| |
OpenOffice (Ebook)
Open-source oprogramowanie do zarządzania pracą biurową. Tylko 25 €. |