Почему Java сообщает мне, что мой апплет содержит как подписанный, так и неподписанный код?

StackOverflow https://stackoverflow.com/questions/2608383

Вопрос

Мой подписанный Java-апплет работал нормально до 19-го обновления Java.Теперь некоторые, но не все наши пользователи Java Update 19 сообщают о сообщении безопасности Java, в котором говорится, что наш апплет содержит как подписанный, так и неподписанный код.

Процесс создания нашего апплета заключается в следующем:

  1. Очистите и соберите проект апплета в IDE Netbeans.
  2. Откройте файл jar апплета в WinRAR и добавьте необходимые файлы mysql JDBC driver .class в файл jar.
  3. Подпишите файл jar апплета.

Может кто-нибудь, пожалуйста, сказать мне, как определить, какой код подписан, а какой код не подписан в нашем апплете?Есть ли лучший способ включить файл jar драйвера mysql JDBC в наш апплет, кроме копирования содержимого файла jar в файл jar нашего апплета?

Спасибо

Это было полезно?

Решение

Некоторые вещи, чтобы попробовать:

  • Перейдите на панель управления плагином Java ($ Java_home / bin / controlpanel).
  • Перейти к Advanced вкладка.
  • Расширять Debug
  • Проверить Enable tracing, Enable logging, а также Show applet lifecycle exceptions
  • Расширять Java console
  • Проверить Show console
  • Щелчок OK (или Close, в зависимости от вашей ОС)

Когда ваш апплет загружает, откроется консоль Java. Нажмите на него и немедленно нажмите «5». Он будет регистрировать банки и классы, чтобы запускать свой апплет. Где-то в этом должно быть сообщение, указывающее, какие банки или классы считают «без знаки». Если вы пропустите его в первый раз, просто перезагрузите окно, чтобы попробовать его снова.

Другие советы

Редактировать:Из-за ошибки в Java 7 Update 45 вам не следует добавлять Trusted-Library в свой файл манифеста.Просто добавьте новый атрибут Caller-Allowable-Codebase.Смотрите этот вопрос для получения дополнительной информации: Манифест Java-апплета - Разрешить все вызывающие-Допустимые-Кодовая база

Java 7 Обновление 21 было выпущено 16 апреля 2013 года и привело к тому, что наш апплет начал показывать это диалоговое окно с предупреждением.

Согласно примечаниям к выпуску:Начиная с JDK 7u21, код JavaScript, который вызывает код внутри привилегированного апплета, обрабатывается как смешанный код, и выводятся предупреждающие диалоги, если подписанные файлы JAR не помечены атрибутом Trusted-Library.

Чтобы исправить это, отредактируйте свой файл manifest.mf и добавьте строку, подобную этой:

Trusted-Library: true

Однако вы должны быть очень осторожны, прежде чем делать это.Если ваш подписанный апплет может быть вызван из javascript, то злоумышленник потенциально может совершать вредоносные действия на компьютерах ваших пользователей.

Один из быстрых способов обезопасить ваш апплет - это запретить его запуск на других веб-сайтах.Сделайте это, поместив код в init() метод, который рассматривает getCodeBase().getHost() и выдает исключение, если оно не соответствует вашему сайту.

В обновлении 25 Java 7 представлен еще один способ ограничить количество сайтов, на которых может быть запущен ваш апплет.Вы можете установить атрибут Codebase в своем файле манифеста следующим образом:

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

Обновление 45 Java 7 (выпущено 16 октября 2013 г.) вносит дополнительные изменения в систему LiveConnect (мост javascript-to-applet), которые могут вызвать другое приглашение.В этой статье рассказывается об изменениях в 7u45: https://blogs.oracle.com/java-platform-group/entry/liveconnect_changes_in_7u45

В принципе, вы также захотите добавить следующее в свой файл манифеста, чтобы избежать подсказок:

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

Если вы продаете продукт, включающий апплет, и не знаете, на каких доменах его можно развернуть, вы можете заполнить * здесь.

Смешивание доверенного и ненадежного кода вместе является уязвимостью, которая была закреплена в 6U19 (текущий выпуск CPU / SSR на момент написания). Смотрите документы. Блокировка смеси или использование отладчика должно показать, где проблема.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top