Problem mit Java-Applet eine Verbindung zwischen unserem server zum aufrufen einer PHP-Datei
Sind wir mit einem problem konfrontiert, mit der neuesten JRE 6, update 22 und 23. Das problem ist, wir betreiben eine Website, die verwendet Java-Applet speichert/abrufen der Daten durch den Aufruf einer PHP-Datei. Für die letzten 7 Jahre, wir hatten nie ein einziges Problem, aber jetzt mit der neuesten JRE haben wir ein problem. Das Java-applet geladen ist gut, aber Fehler beim verbinden unsere Server (unix server), die annehmen, um rufen Sie die PHP-Datei.
Hinweis: Wir verwenden Javascript zum aufrufen einer Java-Funktion, um eine Verbindung zwischen unserem server, zum abrufen der Daten aus der PHP-Datei.
Hier ist die Fehlermeldung gefunden, die in der Java-Konsole:
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 freigegeben hat, erscheint ein Hinweis und die Lösung dieses Problem eine Lösung,
Website: http://www.oracle.com/technetwork/java/javase/6u22releasenotes-176121.html
Dem fix für CVE-2010-3560 verursachen könnte
bestimmte Java-applets laufen in der
neue Java-Plug-in, um aufhören zu arbeiten, wenn
Sie sind eingebettet in Webseiten, die
enthalten JavaScript-Aufrufe in
Java, um Handlungen durchzuführen, die
benötigen Netzwerk-Sicherheit Berechtigungen.
Diese applets können fehlschlagen, mit einem Netzwerk
Sicherheit Ausnahme unter bestimmten
Umständen, wenn der name service
die gelöst die ursprüngliche web-Seite
URL-host-name nicht wieder ein
passende Namen, wie das Ergebnis einer
reverse-Adresse lookup. Dies ist den meisten
wahrscheinlich auftreten, für die neuen Java
Plug-in läuft unter Solaris und Linux
wenn konfiguriert ist, dass NIS für die Gastgeber
network address resolution mit Karten
mit host-Namen, die in
kurze form (nicht als voll
qualified domain name).Wenn ein applet wird vermutet scheitern
aufgrund dieser änderung können Sie sicherstellen, dass
durch den Protokolliergrad festlegen der
Java-Konsole zu 5 und suchen für
Protokollierung Zeichenfolgen beginnend mit "socket
access restriction", die
beschreiben Sie die spezifische Ursache des
Konflikt und helfen bei der Identifizierung
die richtige Lösung für den Einsatz als
unten beschrieben:Fügen Sie eine neue host-name vorwärts-map-Eintrag
(in /etc/hosts, NIS oder DNS) in eine
spezielle form, die anerkannt wird
Java für den Zweck der Validierung
IPv4-und IPv6-Namen-service-mappings.
Die IPv4 Allgemeinen Namen bilden, gefolgt von
eine /etc/hosts-Datei-fragment-Beispiel
für die IP-Adresse 10.11.12.13 ist: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
Gibt es eine Entsprechung für IPv6
Adressen, die verwendet die IP6.ARPA
domain-root-format definiert in RFC
3596.DNS, diese wäre Eine (IPv4) oder
AAAA (IPv6) Einträge.Pre-pend einen vollständig qualifizierten host-Namen
vor anderen Zuordnungen zu den gleichen
Adresse. Zum Beispiel in /etc/hosts
format:#10.11.12.13 foo loghost 10.11.12.13 foo.bar.com foo loghost
Als alternative zum aktualisieren von Namen
service-Aufzeichnungen, kann es möglich sein,
sicher ändern Sie das applet ausführen
das Netzwerk Aktion mit nur eigenen
Berechtigungen unabhängig von der web -
Seite, die es enthält, durch Verwendung der
doPrivileged () - Methode der
java.Sicherheit.AccessController Klasse.
Ich bin PHP-Entwickler und habe sehr wenig wissen über Java. Ich konnte nicht verstehen, die Lösung von Oracle. Wollen Sie add new hostname in /etc/hosts-Datei, kann bitte jemand erklären, mit mehr klares Beispiel dafür, was Sie in /etc/hosts.
Weiß ich auch nicht wo, um doPrivileged () - Methode, bitte um Hilfe.
Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
Paŭlo,
Server admin hochgeladen crossdomain.xml Datei auf den web-root-Verzeichnis der Website, die zu lösen die öffentliche ip-Adresse. Dies ist die einzige information, die ich erhielt.
Hier ist die crossdomain.xml Datei,
Das problem behoben wurde und keine Fehler in der Java-Konsole meldet.
Diese Fehler behoben sind,
Java-applets dürfen nur zu rufen Sie Ihre eigenen Ursprungs-host, und es scheint, dass aus der Veränderung erwähnt, die von Ihrem Zitat oben, dass Javascript-code aufrufen der applet hat keine Vernetzung Rechte, um zu vermeiden, dass feindliche scripts verwenden Sie das applet eine Verbindung zu Ihrem server mit den rechten des applet statt der eigenen.
, Wenn Sie sicher sind, dass keine schädlichen Dinge, die passieren könnte, wenn das applet-Methode aufgerufen wird (auch wenn es von einem bösartigen Skript), können Sie in dieser Methode, die diesem Ruf zu den AccessController.doPrivileged(...), wie diese:
Statt, das einwickeln der gesamten Methode doPrivileged, vielleicht nur wickeln Sie die Netzwerkkomponenten (wie openConnection() oder so).