Ansicht umschalten
Avatar von Dirk Hillbrecht
  • Dirk Hillbrecht

668 Beiträge seit 07.12.2000

Jetzt hab ich's doch selbst getestet: Web Start verhält sich korrekt

Hi,

ich hab jetzt doch selbst ein Test-Szenario aufgebaut und
durchgeführt. Ergebnis: Web Start warnt (zumindest bei
nicht-signierten Zertifikaten) korrekt, wenn die JNLP-Datei geändert
wird.

Das habe ich gemacht: Zunächst ein kleines Testprogramm (hier mal nur
die main()-Methode wiedergegeben):

---
  public static void main(String[] args) {
    StringWriter sw=new StringWriter();
    PrintWriter pw=new PrintWriter(sw);
    pw.println("WebStart permissions test\n\nIf you see an exception,
I could not read.\n"+
    "If you see the first line of /etc/passwd, I could access the
local resources.\n\nResult:");
    try {
      BufferedReader br=new BufferedReader(new
FileReader("/etc/passwd"));
      pw.write(br.readLine());
      br.close();
    }
    catch (Exception e) {
      e.printStackTrace(pw);
    }
    pw.close();
    JFrame jf=new JFrame("Web Start security bug testing");
    jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    JTextArea jta=new JTextArea(15,50);
    ((JPanel)jf.getContentPane()).add("Center",jta);
    jta.setText(sw.toString());
    jf.pack();
    jf.show();
  }
---

Diese nun über folgende Web-Start-Datei zugänglich gemacht:

---
<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="1.0+" codebase="http://[...]" href="testsec.jnlp">
<information>
<title>Test Security</title>
<vendor>cantamen GmbH</vendor>
<homepage href="http://www.cantamen.de"/>
<description>Testsec</description>
<description kind="short">Testsec</description>
<offline-allowed/>
</information>
*****<security><all-permissions/></security>*****
<resources>
<j2se version="1.4"/>
<jar href="testsec.jar" main="true"/>
</resources>
<application-desc main-class="[...]">
</application-desc>
</jnlp>
---

Die "*****"-Zeile ist zunächst ausgeklammert, d.h. das Programm hat
keine Rechte außerhalb der Sandbox.

Resultat: Keine Nachfrage beim Start, aber Exception wird geworfen,
das Programm kommt nicht /etc/passwd ran.

Nun: Einfügen der <security>-Zeile in die JNLP-Datei. Erneut
aufrufen. ES KOMMT DIE WARNMELDUNG mit der Nachfrage. Nach Bestätigen
derselben kann das Programm dann auf /etc/passwd zugreifen. Wie es
auch sein sollte.

Fazit: Änderungen der JNLP-Datei werden korrekt ausgewertet, die
Warnmeldung erscheint, Richards Sorgen sollten ausgeräumt sein.

Und ich muss heute länger arbeiten, damit ich die hierfür verwendete
Zeit wieder aufhole.

Ciao, Dirk

Bewerten
- +
Ansicht umschalten