Java lezione 13

6
Le Applet Package java.applet

Transcript of Java lezione 13

Page 1: Java lezione 13

Le Applet

Package java.applet

Page 2: Java lezione 13

SicurezzaLe Applet sono codice sconosciuto che la nostra macchia esegue,

quindi potenzialmente si tratta di qualcosa di molto pericoloso.Per questo è stato fatto molto per garantirne la sicurezza.Il modello di sicurezza è detto sand box: un contenitore da cui le

applet non possono evadere. Il controllo delle operazioni viene effettuato dal Security Manager. Il S.M. lancia l’eccezione SecurityException quando si ha un tentativo di operazione vietata.L’applet non può (oltre alla limitazioni intrinseche di java): accedere al file system locale usare procedure native o comandi di sistema definire proprietà di sistema e leggerne alcune crea o interagire con thread che non appartengono all’applet definire nuove istanze di alcune classi come il SecurityManager accettare connessioni da un client prelevare file che non provengono dall’host di provenienza.

Page 3: Java lezione 13

Uso di file sull’HostSono particolarmente utili i metodigetDocumentBase(); //url della pagina che contiene l’AppletgetCodeBase(); //url della directory che contiene l’Applet

Ad esempio sarà possibile caricare un immagine con:Image img=getImage(getCodebase(),”images/figura.jpg”);O un audioclip con:AudioClip ac=getAudioClip(getCodebase(),”audio.mid”);Connettersi a un host:Socket s=new Socket(getCodebase().getHost(),1666);O recuperare un oggetto remoto:MyObj mo=(MyObj)Naming.lookup(“//”+getCodebase().getHost()+ “/MioServizio”);

Page 4: Java lezione 13

Applet FirmateDalla versione 1.1 del JDK è possibile superare la limitazione della sandbox. Le applet firmate possono avere permessi maggiori.compilare il file java e creare un archivio jar generare le chiavi pubblica e privatakeytool –genkey –alias Me –keystore MyStoreTale comando richiede l’inserimento di informazioni aggiuntiveTra cui due password una principale(storepass) e una per l’alias(keypass) firmare l’archivio:jarsigner –keystore MyStore –storepass MyPassword –keypass MyKeypass archivio.jar Meverificare l’archivio: jarsigner –verify archivio.jar esportare il certificato per chi lo dovrà usare:keytool -export –alias Me –keystore MyStore –file MyCert.cer Il client dovrà installare il certificato:keytool –import –alias You –keystore YourStore –file MyCert.cer

Page 5: Java lezione 13

File di Policy Installato il certificato è possibile assegnare un file di policy

solo alle applet firmate da “You”:keystore “YourStore”grant SignedBy “You” { permission java.io.FilePermission “C:\AUTOXEC.BAT”, “read”;

permission java.util.PropertyPermission “user.name”, “read”;}Esecuzione con appletviewerappletviewer –J-Djava.security.policy=mia.policy pagina.htmlUsando un browser si hanno a disposizione strumenti specifici

per installare i certificati.

Page 6: Java lezione 13

AppletContext E’ possibile far dialogare le applet che appartengono alla stessa pagina grazie al ‘contesto’ delle applet.AppletContext ac=getAppletContext();L’AppletContext dispone di metodi molto utili:Enumeration e=ac.getApplets(); //tutte le applet della pagina

MyApplet ma=(MyApplet)ac.getApplet(“nome”); //un’applet specificama.calcola(5); //esecuzione di un metodo di un’altra applet(NOTA il nome dell’applet viene fissato nell’HTML come attributo del tag APPLET>)Inoltre AppletContext permette di caricare un URL differente, di realizzare un link ipertestuale.URL url=new URL(“http://www.sun.com”);cc.showDocument(url);