Page 1404 - Informatica dalla A a Z
P. 1404
Le APPLET
Dobbiamo sapere che i programmi che vengono scritti con il linguaggio Java si dividono in
due grandi categorie:
• le applicazioni
• gli applet
Mentre le applicazioni, viste in precedenza costituiscono programmi Java completi a sé
stanti, le Applet, possono essere eseguite soltanto all’intemo di un browser Web.
Quasi tutto quello che si può fare con un’applicazione, può essere realizzato anche usando
un’applet. Un’applet è una particolare applicazione grafica perché non viene eseguita
all’interno di una propria finestra, ma usa la finestra di un browser. Questo pannello oc-
cupa una partedella finestra del browser, e le sue dimensioni vengono definite da un par-
ticolare tag HTML nella pagina Web. Può contenere pulsanti, caselle di testo, aree di dise-
gno e tutte le altre componenti grafiche di Java.
Esistono però delle limitazioni dovute a problemi di sicurezza, per evitare che qualche ma-
leintenzionato possa approfittarne.
Approfondimento: Le azioni vietate alle Applet:
• accedere ad indirizzi arbitrari in memoria; limite intrinseco del linguaggio Java e del By-
tecode Verifier;
• accedere al file system locale;
• utilizzare procedure native: non si possono invocare i metodi della classe java.lang.Run-
time come exec o exit;
• leggere alcune delle proprietà di sistema della macchina sulla quale sono in esecuzione;
• definire alcuna proprietà di sistema;
• creare o modificare alcun thread o thread group che non si trovi nel thread group dell’Ap-
plet stessa;
• definire o utilizzare una nuova istanza di ClassLoader, SecurityManager, ContentHandler-
Factory, SocketImplFactory o URLStreamHandlerFactory; devono utilizzare quelle già esi-
stenti;
• accettare connessioni da una macchina client.
Il modello più semplice di gestione della sicurezza delle Applet è quello detto sandbox: in
questo caso esse vengono eseguite all’interno di un ambiente protetto in modo da impe-
dirne l’accesso al sistema sottostante.
La sandbox è una specie di contenitore dal quale le Applet non possono evadere: il con-
trollo sulle operazioni permesse è effettuato dal Security Manager, il quale verifica il byte-
code in fase di caricamento (Bytecode Verifier), e l’Applet in fase d’esecuzione (Security
Manager).
Oltre al classico modello sandbox, con l’avvento della versione 1.1 del JDK si è voluta offrire
al programmatore una maggior libertà d’azione, introducendo il concetto di Applet fir-
mata. In questo caso, tramite un processo di firma elettronica con un certificato digitale, si
1400