Мы сталкиваемся с проблемой последних 22 и 23 обновлений JRE 6. Проблема в том, что мы запускаем сайт, который использует Java-апплет для хранения / извлечения данных путем вызова файла PHP. За последние 7 лет у нас никогда не было ни одной проблемы, но теперь с последней JRE у нас есть проблема. Апплет Java загружен нормально, но не смог подключиться к нашему серверу (Unix-серверу), который предполагает вызывать файл PHP.
Примечание. Мы используем Javascript для вызова функции Java для подключения к нашему серверу, для извлечения данных из файла PHP.
Вот сообщение об ошибке, найденное в консоли Java:
basic: Applet started
basic: Told clients applet is started
Retreiving cmi for sco=778 from ATutor server
network: Connecting http://www.example.com/training/scorm/read.php with proxy=DIRECT
network: Cache entry not found [url: http://xxx.xxx.xxx.xxx/crossdomain.xml, version: null]
network: Connecting http://xxx.xxx.xxx.xxx/crossdomain.xml with proxy=DIRECT
network: Connecting http://xxx.xxx.xxx.xxx:80/ with proxy=DIRECT
network: Server http://xxx.xxx.xxx.xxx/crossdomain.xml requesting to set-cookie with "SESSdba781ab68368f3b7b29ce28e33a2679=983ded5e21e40047871b1f3ce5c259d7; expires=Monday, 07-Mar-11 20:45:53 GMT; path=/"
ATutor cmi retrieval failed.
java.security.AccessControlException: access denied (java.net.SocketPermission xxx.xxx.xxx.xxx:80 connect,resolve)
Oracle выпустила заметку и решает эту проблему,
Сайт: http://www.oracle.com/technetwork/java/javase/6u22releasenotes-176121.html
Исправление для CVE-2010-3560 может привести к
некоторые апплеты Java, работающие в
новый плагин Java, чтобы перестать работать, если
они встроены в веб-страницы, которые
содержат JavaScript, который вызывает в
Java для выполнения действий, которые
требовать разрешения безопасности сети.
Эти апплеты могут потерпеть неудачу с сетью
исключение безопасности под некоторыми
обстоятельства, если имя службы
который разрешил оригинальную веб-страницу
Имя хоста URL не возвращает
совпадающее имя как результат
обратный поиск адресов. Это самое
вероятно, произойдет для новой Java
Плагин работает на Solaris и Linux
когда настроено использовать NIS для хоста
разрешение сетевых адресов с помощью карт
содержащие имена хостов, которые находятся в
краткая форма (а не как полностью
доменное имя).
Если апплет подозревается в сбое
благодаря этому изменению вы можете убедиться, что
установив уровень регистрации
Консоль Java до 5 и ищет
регистрация строк, начинающихся с "socket
ограничение доступа ", который будет
опишите конкретную причину
несоответствие и поможет в выявлении
правильный обходной путь для использования в качестве
описано ниже:
Добавление новой записи имени хоста в карту перенаправления.
(в / etc / hosts, NIS или DNS) в
специальная форма, которая признается
Java с целью проверки
Сопоставления службы имен IPv4 и IPv6.
Форма общего имени IPv4, за которой следует
пример фрагмента файла / etc / hosts
для IP-адреса 10.11.12.13 это:
host.auth.ddd.ccc.bbb.aaa.in-addr.arpa
# /etc/hosts example
10.11.12.13 foo.bar.com.auth.13.12.11.10.in-addr.arpa
Существует эквивалентная форма для IPv6
адреса, использующие IP6.ARPA
корневой формат домена, определенный в RFC
3596.
Для DNS это будет A (IPv4) или
Записи AAAA (IPv6).
Предварительно дождаться полного имени хоста
перед другими отображениями к тому же
адрес. Например, в / etc / hosts
Формат:
#10.11.12.13 foo loghost
10.11.12.13 foo.bar.com foo loghost
Как альтернатива обновлению имени
служебные записи, возможно
безопасно изменить апплет для выполнения
сетевое действие, использующее только его собственное
разрешения не зависят от сети
страница, которая содержит его с помощью
doPrivileged () метода
класс java.security.AccessController.
Я разработчик PHP, и у меня очень мало знаний о Java. Я не мог понять решение, предоставленное Oracle. Они хотят добавить новое имя хоста в файл / etc / hosts, может кто-нибудь объяснить более понятным примером, что добавить в /etc/hosts.
Также я не знаю, где добавить метод doPrivileged (), пожалуйста, помогите.
Спасибо