Domanda

Il mio applet Java firmato sta funzionando benissimo fino a quando l'aggiornamento di Java 19. Ora alcuni, ma non tutti i nostri utenti su Aggiornamento Java 19 segnalare un messaggio di sicurezza Java che indica che il nostro applet contiene sia codice firmato e non firmato.

Il processo di creazione del nostro applet è la seguente:

  1. Pulire e generare il progetto applet in IDE Netbeans.
  2. Apri il file jar Applet in WinRAR e aggiungere i file del driver JDBC mysql necessaria .class al file jar.
  3. Accedi il file jar applet.

Qualcuno può dirmi come determinare ciò che è firmato il codice e quello che il codice non è firmato nella nostra applet? C'è un modo migliore per includere il file jar JDBC driver MySQL nel nostro applet altro che copiare il contenuto del file jar nel nostro file jar applet?

Grazie

È stato utile?

Soluzione

Alcune cose da provare:

  • Vai al pannello di controllo Java Plugin ($ JAVA_HOME / bin / Pannello di controllo).
  • Vai alla scheda Advanced.
  • Espandi Debug
  • Controllare Enable tracing, Enable logging, e Show applet lifecycle exceptions
  • Espandi Java console
  • Controllare Show console
  • Fare clic OK (o Close, seconda del sistema operativo)

Quando i carichi applet la console Java si apriranno. Fare clic su di esso e immediatamente premere '5'. Si registrerà i vasi e le classi essendo inverosimile per eseguire l'applet. Da qualche parte in questo non dovrebbe essere un messaggio che indica che cosa vasetti o classi sono considerano "unsigned". Se si dimentica la prima volta, basta ricaricare la finestra di provare di nuovo.

Altri suggerimenti

EDIT: A causa di un bug in Java 7 Aggiornamento 45 non si deve aggiungere Trusted-Library al file manifesto. Basta aggiungere il nuovo attributo Caller-ammissibile-Codebase. Vedere questa domanda per ulteriori informazioni: Java applet manifesta - Consenti tutto Caller-ammissibile -Codebase

Java 7 Aggiornamento 21 è stato rilasciato il 16 aprile 2013 e ha causato la nostra applet per iniziare a mostrare questa finestra di avviso.

Per le note di rilascio: A partire da JDK 7u21, il codice JavaScript che il codice chiamate all'interno di un applet privilegiata è trattata come le finestre di dialogo di codice e di allarme misti sono sollevate se i file JAR firmati non sono contrassegnati con l'attributo Trusted-Library.

Per risolvere questo modificare il file MANIFEST.MF e aggiungere una riga come questa:

Trusted-Library: true

Si dovrebbe essere molto attenti prima di fare questo però. Se l'applet firmato può essere chiamato da JavaScript quindi un utente malintenzionato può potenzialmente fare cose dannose sui computer degli utenti.

Un modo rapido per garantire la sua applet è quello di evitare che venga eseguito su altri siti web. A tale scopo, mettendo codice nel metodo init() che guarda getCodeBase().getHost() e genera un'eccezione se non corrisponde il tuo sito.

Java 7 Aggiornamento 25 introduce un altro modo per limitare i luoghi in cui l'applet può essere eseguito. È possibile impostare l'attributo Codebase nel file manifest in questo modo:

Codebase: test.example.com www.example.com

Java 7 Aggiornamento 45 (releated 16 ottobre 2013) introduce ulteriori modifiche al sistema LiveConnect (javascript-to-applet ponte) che può causare un altro prompt. Questo articolo parla dei cambiamenti 7u45: https://blogs.oracle.com/ java-platform-group / entry / liveconnect_changes_in_7u45

In pratica si potrà anche aggiungere quanto segue al file manifesto per evitare le istruzioni:

Caller-Allowable-Codebase: test.example.com www.example.com

Se si sta vendendo un prodotto che include un applet e non si sa che cosa domini può essere distribuito su è possibile popolare * qui.

La miscelazione attendibile e codice non attendibile insieme è una vulnerabilità che è stato fissato nel 6u19 (l'attuale CPU / release SSR, al momento della scrittura). Vedere la documentazione. Bloccare il mix o utilizzando un debugger dovrebbe mostrare dove sia il problema.

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