search
subnavi
Werbung

PHPLIB

Frage: Was ist das Sevenval-Patent?

Antwort von Kristian Köhntopp:

Die Firma Sevenval hat sich die Speicherung der Session-ID im Hostnamen patentieren lassen. Das Patent von Walkowiak, Olaf und Sponagl, Paul umfasst laut Abstract folgendes:

In a method for providing state information in a stateless data communications protocol, the state information being provided between a client and a server site, said server site being accessible at each of cluster of site names, one site name of a said cluster of site names is used for accessing said server site, said site name containing the encoded state information. A computer program product and an apparatus compromise corresponding features. The invention creates a way of providing state information in a stateless data communication protocol with very little effort.

In der Patentschrift:

... merits of the inventors have shown that the configuration of both the nameserver and the server site in the way described are possible with very little programming effort.

Im Wesentlichen versucht die Schrift, auf ca. 30 Seiten mit vielen unnötigen Worten anhand von Apache, Bind, PHP, mod_rewrite und mod_unique zu erklären, wie die Technik funktioniert - genauso, wie es jeder nach wenigen Minuten selber nachkonfiguriert hat. Klar ist, dass zwar die Idee, nicht aber die Konfiguration geschützt ist.

Die Erfindung umfasst, unter Benutzung obiger "said" Methode insbesondere:

    • Die Anwendung mit HTTP

    • Die Benutzung von Redirects

    • Die Verwendung mit IP-Nummern anstelle von Domain-Namen.

Im anschließenden Gespräch ergaben sich noch folgende Infos:

    • Die Benutzung soll nur für den kommerziellen Gebrauch kostenpflichtig sein. Unis etc. sollen es so machen können.

    • Kosten sind angedacht in der Größenordnung von ca. 15.000 Euro pro Server pro Jahr.

    • Es besteht Einigkeit darüber, dass das genannte Verfahren primär dem Designer nützt.

Frage: Warum sind die Session-IDs von PHPLIB so lang?

Antwort von Kristian Köhntopp:

PHPLIB verwendet als Session-ID eine kryptographische Prüfsumme (MD5-Verfahren) über einen String mit einer geheimen Komponente. Auf diese Weise ist die Session-ID einer PHPLIB-Session nicht vorhersagbar und ratbar. Würde PHPLIB fortlaufende Nummern als Session-IDs verwenden, könnte der Inhaber der Session 17 davon ausgehen, dass auch die IDs 16 und 18 belegt sind und versuchen, seine Session-ID zu ändern und so eine fremde Session zu übernehmen.

Dadurch, dass PHPLIB quasi-zufällige, nicht ratbare IDs verwendet, ist diesem Angriff ein Riegel vorgeschoben.

Frage: Internet Explorer: Meine Seiten werden nicht aktualisiert.

Antwort von Kristian Köhntopp:

Internet Explorer cached sehr aggressiv. Nur wenn man das Caching einer Seite vollständig verbietet, werden Seiten korrekt aktualisiert. Dazu ist in der eigenen Unterklasse von Session in der Datei local.inc die Option allowcache auf no zu stellen.

class Example_Session extends Session {
        ...
        var $allowcache = "no";  // ab Version 7.2c: "passive"
        ...
} 

In PHPLIB 7.2c ist eine neue Einstellung passive für die Variable allowcache dazugekommen. In dieser Einstellung wird für den Netscape-Server das lokale Caching der Seiten erlaubt, für den Internet Explorer werden besondere Header gesendet, die diesem das Caching der Seite verbieten. Dies sollte in den meisten Fällen die Probleme lösen. Wo sie es nicht tun, muss weiterhin mit $allowcache = "no" gearbeitet werden.