|
untitled document a proteggere gli applet java immaginate quale puo essere la sensazione di un programmatore quando scopre il proprio lavoro mostrato sulla pagina web non sua, senza aver dato alcun permesso, e senza essere minimamente citato come creatore del lavoro. creare un applet java puo richiedere ad un programmatore esperto giorni, quando non settimane o mesi. la sensazione di veder tutto il proprio duro lavoro mostrato anonimamente su un altra pagina non fa certo piacere. il furto di applet sul web e una questione seria per molta gente. i metodi sono parecchi: gli applet possono essere prelevati dalla cache del browser, o possone semplicemente essere linkati al sito del ladro, usando i suoi parametri. alcuni hacker particolarmente scaltri, fanno semplicemente reverse engineering del file di class, e ricostruiscono l applet. c e addirittura un utility che ritrasforma un file .class in codice sorgente. se si ha un applet su web, e si ritiene che non lo stia usando nessun altro, basta andare su alta vista e digitare applet:nome-del-mio-applet.class (sostituendo ovviamente nome-del-mio-applet con il nome vero dell applet). e piu probabile che il proprio applet sia stato gia usato su siti misconosciuti, che non che sia ancora isolato e intatto. per molte persone, cio e solo un gran complimento. per un programmatore professionale, comunque, e un crimine. di seguito analizzeremo un metodo per prevenire il furto di applet, descrivendovi quali sono i fatti sull argomento. una cosa pero dev essere chiara. quando si parla di sicurezza, bisogna tenere ben presente che gli hacker si divertono un sacco a infrangerla. spesso, infatti, le informazioni o il software che dovrebbero rappresentare il bottino di un hacker, non lo sono in realta , in quanto lo spirito e quello di gioire per il solo fatto di aver infranto un apparato di sicurezza. sebbene esistano ormai anche hacker assoldati dalle grandi compagnie, quando si parla di pagine web e java, allora gli hacker sono altri sviluppatori web, e la maggior parte di loro ha pagine web, ove e possibile trovare gli applet rubati. cosa puo essere fatto per fermare la maggioranza di questi furti? si puo usare cio di cui si dispone, e e si possono fare quindi delle chiamate al getdocumentbase() come aiuto. questo metodo viene dal class applet, nel package java.applet. il metodo getdocumentbase() riferisce da dove le pagine html sono state servite. usando getdocumentbase(), si puo determinare l origine della pagina, e se il metodo viene chiamato all interno dell applet, si puo bloccare l applet se esso non proviene dal server giusto. ecco un semplice esempio: import java.net. ; import java.applet. ; public class antiladri extends applet public void init() string ladro; stringowner getdocumentbase().gethost(); if (owner.equals( www.proprio-dominio.com )) qui si puo inserire cio che serve agli utenti legittimi else system.exit(1); qui, invece, va inserito cio che serve a fermare o a modificare l applet per i ladri cio causa una eccezione di sicurezza al system.exit(1); se l applet non proviene dal proprio sito. questo e solo un esempio, sebbene possa essere usato per ottenere qualsiasi cosa, ma in questa maniera non sara utile contro i ladri. un aspetto negativo di questo metodo e che bisogna cambiare e ricompilare l applet se si cambia server. e quanto, poi, risulta sicuro? probabilmente abbastanza per tenere lontani molti ladruncoli, ma non abbastanza per fermare i professionisti, o quelli con un po piu di determinazione. come possono ricavare le funzioni dell applet? chiunque sia aduso ad un editor esadecimale potrebbe spiegarlo. nessun trucco da maestro, solo qualche cerca e sostituisci. allora perche implementare un metodo siffatto? perche ferma praticamente il 90 di quelli che vogliono modificare quell applet, e il restante 10 trovera comunque una maniera di metterci le mani. se non ci si spaventa ad entrare nel mondo del cgi (e perche si dovrebbe, dato che si sta gia programmando in java), si possono creare uno script che viene richiamato dall applet, e se lo script non passa le giuste informazioni all applet stesso, esso non funziona. semplice? non proprio, ma e certamente piu efficace dell esempio precedente. cio che si puo oggettivamente fare e far si che l applet richieda una chiave che e calcolata al volo dall applet insieme allo script cgi. la chiave puo essere crittata con un metodo qualsiasi, usato sia dall applet che dallo script. in questa maniera, se il server che serve l applet non ha anche lo script cgi, l applet stesso non funziona. questa chiave puo essere basata sull ip del client, o la si puo basare su un file di testo presente sullo stesso server. alcuni programmatori java sono molto sensibili al furto degli applet, tanto sensibili da lavorare alacremente contro questo fenomeno deprecabile. ad ogni modo altri pensano che la protezione possa essere piu un ostacolo che un aiuto effettivo. spero vivamente che i distributori di software java non debbano vagare verso il nulla (come le aziende di software che hanno implementato le protezioni dalla copia in precedenza), cercando di proteggere i loro programmi dai prezzi assai ridicoli del livello di ottocento dollari a programma, ripetendo inutilmente la storia, solo perche non si sono fermati un attimo a capire il senso comune della sociologia dietro la pirateria del software... , diceva recentemente robert lynch nel newsgroup comp.lang.java.programmer. robert crede fermamente che solo quando le aziende di software capiranno che hanno bisogno di realizzare servizi efficienti (come manuali stampati e un buon supporto tecnico insieme a prezzi convenienti), la pirateria comincera a sgretolarsi. sfortunatamente, la pirateria del software invece continua, ben oltre la pirateria comune che fa si che gli utenti si scambino il software preferito. secondo la business software alliance, 12,8 miliardi di dollari sono persi ogni anno in tutto il mondo a causa della pirateria, e i programmi java non rientrano nemmeno in questa cifra. se qualcuno potrebbe obiettare che le applet java e le loro applicazioni non sono propriamente software di per se, la maggioranza dei programmatori java potrebbe controbattere che gli applet non solo sono software a tutti gli effetti, ma sono molto costosi da produrre. sebbene il parlare di furto di applet sia a volte scambiato per paranoia, esso sara sempre piu importante, tanto piu java verra accettato come linguaggio di programmazione, per il web o no.
Fonte: http://www.ecn.org/gramna/info/ihm/html/come/come13.htm
applet dato file
|