Domanda

Un JApplet può usare un JFileChooser in modo che l'utente possa selezionare un file sul suo disco rigido? O questo violerebbe la sicurezza dell'applet Java? (Suppongo che vengano utilizzate le impostazioni di sicurezza predefinite. Non voglio chiedere ai miei utenti di concedermi autorizzazioni aggiuntive.)

È stato utile?

Soluzione

Questa discussione indica che devi firmare digitalmente la tua applet prima che un JFileChooser sia consentito.

Altri suggerimenti

Come accennato, è necessario firmare l'applet, che si traduce in un "vago avviso di sicurezza" quando all'utente viene presentata l'applet. Quando l'utente accetta di eseguire questa applet, l'applet ha pieno accesso e funziona come una normale applicazione con le sue ovvie implicazioni per la sicurezza. Sono nello stesso dilemma riguardo a un'applicazione Web su cui sto lavorando e non sono ancora sicuro che verrà distribuito.

In alternativa, è possibile utilizzare il browser dei file incorporato nel browser Web e ripristinare il contenuto del file dal server se si lavora con file più piccoli.

Inoltre, alcune misure di sicurezza che puoi prendere riguardo ad un'applet firmata sono:

  • Convalida dell'origine del codice dell'applet.

    URL appletUrl = MyApplet.class.getProtectionDomain().getCodeSource().getLocation();
    if(appletUrl.toString().equalsIgnoreCase(safeAppletUrl) == false)
       return false;
    
  • Verifica dell'URL di base da cui è stata eseguita l'applet.

    URL documentUrl = this.getDocumentBase(); 
    if(documentUrl.toString().equalsIgnoreCase(safeDocumentUrl) == false)
       return false;
    

In tal caso (utilizzando le impostazioni predefinite), hai ragione, il gestore della sicurezza predefinito non consente l'accesso ai file locali.

Probabilmente dovrai usare PrivilegedAction per leggere qualsiasi cosa dal disco rigido dell'utente. Proprio come ha detto @mmyers, dovrai firmare anche la tua applet.

Quindi la tua risposta è sì, l'ho già fatto prima, quindi so che può essere fatto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top