Pergunta

Meu Applet Java assinado está funcionando bem até o Java Atualize 19. Agora, alguns, mas nem todos os nossos usuários no Java Atualize 19 relatam uma mensagem de segurança Java, afirmando que nosso applet contém código assinado e não assinado.

O processo para criar nosso applet é o seguinte:

  1. Limpe e construa o projeto de applet no netbeans IDE.
  2. Abra o arquivo JAR do Applet no Winrar e adicione os arquivos do Driver .Class .Class do MySQL JDBC ao arquivo JAR.
  3. Assine o arquivo jar do applet.

Alguém pode me dizer como determinar qual código é assinado e qual código não está assinado em nosso applet? Existe uma maneira melhor de incluir o arquivo JAR de driver MySQL JDBC em nosso applet, além de copiar o conteúdo do arquivo JAR em nosso arquivo JAR de applet?

Obrigado

Foi útil?

Solução

Algumas coisas para tentar:

  • Vá para o painel de controle do plug -in Java ($ java_home/bin/controlPanel).
  • Vou ao Advanced aba.
  • Expandir Debug
  • Verificar Enable tracing, Enable logging, e Show applet lifecycle exceptions
  • Expandir Java console
  • Verificar Show console
  • Clique OK (ou Close, dependendo do seu sistema operacional)

Quando o seu applet carregar, o console Java será aberto. Clique nele e pressione imediatamente '5'. Ele registrará os frascos e as aulas sendo buscada para executar seu applet. Em algum lugar disso, deve haver uma mensagem indicando quais frascos ou classes são considerados "não assinados". Se você sentir falta da primeira vez, basta recarregar a janela para experimentá -la novamente.

Outras dicas

Editar: devido a um bug na atualização Java 7, você não deve adicionar biblioteca confiável ao seu arquivo de manifesto. Basta adicionar o novo atributo chamador-código-código. Veja esta pergunta para mais informações: Manifesto de Applet Java-Permitir toda a Codebase de Classificador-Arelable

O Java 7 Atualização 21 foi lançado em 16 de abril de 2013 e fez com que nosso applet comece a mostrar esse diálogo de aviso.

De acordo com as notas de liberação: a partir do JDK 7U21, o código JavaScript que chama o código dentro de um applet privilegiado é tratado como código misto e diálogos de aviso forem aumentados se os arquivos JAR assinados não forem marcados com o atributo confiável da biblioteca.

Para corrigir este arquivo manifesto.mf e adicionar uma linha como esta:

Trusted-Library: true

Você deve ter muito cuidado antes de fazer isso. Se o seu applet assinado puder ser chamado do JavaScript, um usuário malicioso poderá fazer coisas prejudiciais nos computadores de seus usuários.

Uma maneira rápida de proteger seu applet é impedir que ele seja executado em outros sites. Faça isso colocando código no init() método que analisa getCodeBase().getHost() e joga uma exceção se não corresponder ao seu site.

O Java 7 Atualização 25 apresenta outra maneira de limitar os sites onde seu applet pode ser executado. Você pode definir o atributo CodeBase em seu arquivo de manifesto assim:

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

Java 7 Atualização 45 (RELATED 16 de outubro de 2013) apresenta mais alterações no sistema LiveConnect (ponte JavaScript para aplicativo) que podem causar outro prompt. Este artigo fala sobre as alterações 7U45: https://blogs.oracle.com/java-platform-group/entry/liveconnect_changes_in_7u45

Basicamente, você também deseja adicionar o seguinte ao seu arquivo manifesto para evitar os prompts:

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

Se você está vendendo um produto que inclui um applet e não sabe em quais domínios ele pode ser implantado, você pode preencher * aqui.

Mixar Código Confiável e Não Confiado é uma vulnerabilidade que foi fixada no 6U19 (a versão atual da CPU/SSR no momento da redação). Veja os documentos. Bloquear a mistura ou usar um depurador deve mostrar onde está o problema.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top