OsCommerce benutzt die serverseitige Scriptsprache
PHP um die erforderliche
interaktive Funktionalität zu erreichen. Die in vielen Shopsystemen eingesetzte Sprache "Javascript" wird nur in einigen Bereichen als Unterstützung herangezogen.
Auch Besucher Ihres Shops, die in Ihrem Browser Javascript deaktiviert haben, können problemlos den Warenkorb füllen und durch die "Kasse" bringen.
Was ist der Unterschied zwischen
PHP und
Javascript?
Der wichtigste Unterschied ist der, daß Javascript Programme durch den Internetbrowser abarbeitet. Also vollkommen unabhängig von dem Server,
auf dem der Shop betrieben wird. Alle relevanten Browser besitzen inzwischen die Möglichkeit, Javascript abzuschalten.
Das hindert nervige Internetseiten zum Teil daran, ungewollt Popups zu öffnen oder andere ungewollte Aktionen zu starten.
Das Abschalten hat allerdings zur Folge, daß Shopsysteme, die die Navigation innerhalb der Warenkategorien oder das Verwalten des Warenkorbs
durch Javascript erledigen, Ihre Funktionalität verlieren.
Durch die Benutzung einer serverseitigen Programmierung durch PHP oder anderer Sprachen, wird an den Besucher des Shops eine Webseite übertragen,
die nur HTML enthält. Aktionen, die durch das Programm abgearbeitet werden sollen, werden durch speziell geformte Links erreicht.
Die daraufhin angezeigte Webseite enthält das entsprechende Ergebnis. Teilweise wird in das HTML auch Javascript eingebettet, um Vorabprüfungen zu
ermöglichen. So wird zum Beispiel bei der Adresseingabe des Besuchers überprüft, ob die Angaben eingetragen wurden.
Ist dies nicht erfolgt erhält der Besucher bereits eine durch Javascript generierte Fehlermeldung. Selbst dann, wenn Javascript abgeschalten
wurde, erfolgt auf dem Webserver eine richtige Prüfung der Angaben.
Um sicherzustellen, daß jeder Besucher die richtige Webseite mit seinem Warenkorb angezeigt bekommt, wird jedem Besucher eine Sitzungsnummer (Session-ID)
zugeteilt. Diese Nummer ist auf dem Server einmalig und wird in einem Cookie gespeichert. Sollte der Besucher die Akzeptanz von Cookies abgeschalten haben,
wird die Nummer bei jedem Seitenaufruf in der URL oder einem verdeckten Datenfeld übertragen.
Auch wenn
Cookies immer wieder in der Kritik stehen, sind sie ein Mittel
für mehr Datenschutz.
So genannte "Sitzungscookies" können nur von der besuchten Webseite ausgelesen werden und verfallen, wenn das Browserfenster geschlossen wird.
Außerdem besteht die grundsätzliche Möglichkeit, daß Sitzungsnummern, die
nicht in einem Cookie gespeichert werden können, an die Öffentlichkeit gelangen.
Dadurch besteht die Möglichkeit, daß ein Besucher die Daten eines anderen Besuchers einsehen kann oder diese sogar in Ergebnisseiten der
Suchmaschinen auftauchen.
Aktualität von OsCommerce
Man liest immer wieder, OsCommerce sei veraltet und unsicher (register_globals = on). Hier muß man bedenken, daß dieses Projekt
über so viele Jahre hinweg gewachsen ist, in denen sich die Umgebung, in der es funktionieren soll, in vieler Hinsicht gewandelt hat. Das oft in Anspruch genommene
Argument der Sicherheitslücken durch die Einstellung der PHP-Direktive "register_globals" kann nicht gehalten werden. Es ist keine echte Sicherheitslücke
bekannt geworden die darauf beruhte. Bekanntgewordenen Bugs betrafen nicht nie die Sicherheit von Server und Daten. Der schwerwiegenste Fall beruhte auf einen Bug in
PHP selbst. Dadurch wurde es möglich, durch einen manipulierten Aufruf des Kontaktformulars eine Serie von E-Mails zu versenden.
OsCommerce war dadurch ein beliebtes Ziel dieser Angriffe, weil die Anzahl der im WWW verfügbaren Kontaktseiten sehr hoch war.
Allerdings waren diese Angriffe leicht erkennbar und leicht abzustellen.
(wird fortgesetzt, Stand: 18.10.2006)