Sicherheit
Folgende Maßnahmen dienen der Sicherheit von TobbiVM-Shop:
Alle Eingaben von außen, also zum Shopsystem hin, werden geprüft und ggf. verworfen.
Es werden alle Eingaben, die durch Benutzer getätigt werden, auf Gültigkeit geprüft. Unerlaubte Eingaben werden verworfen, aber es wird in kritischen Teilen keine Fehlermeldung ausgeworfen. Dies soll verhindern, das dadurch Rückschlüsse auf eventuelle Schwachstellen gezogen werden können.
Keine Datei, mit Ausnahme der Startdatei und ggf. Bilddateien, ist direkt von außen aufrufbar.
Alle Scripte werden durch PHP-Maßnahmen und/oder .htaccess-Regeln vor dem direkten Zugriff von außen gesperrt. Lediglich die Startdatei und die Artikelbilder sind hiervon ausgenommen. Ebenso wird eine robots.txt verwendet, die von den vernünftigen Suchmaschinen beachtet wird.
Komplexer htaccess-Schutz des Backends.
Zusätzlich zum vorhandenen Login-Schutz rate ich dazu das Backend mittels .htaccess/.htpasswd abzusichern (Siehe auch "IP-Filter. Dies ist ein, durch den Server unterstützter Schutz der, bei Verwendung von sicheren Passwörtern, nicht auszuhebeln ist.
Ich verwende ein 64-Zeichen langes Passwort mit Sonderzeichen. Allein dieses zu knacken dürfte viele, sehr viele Jahre dauern. Das kann ich mir auch nicht merken aber mit 1Password klappt das ganz gut.
Wenn dann doch jemand auf den Webspace kommen sollte so ist der Server selbst kompromittiert - daran kann der Benutzer, du also, aber nichts ändern.
Weitergehend sollte man im Backend noch einen IP-Filter in die .htaccess einfügen. Diese füllt man mit den IP-Bereichen seines Providers und hat so schon einmal grundsätzlich ca. 99% des Internets ausgebremst.
Vollkommene Trennung von Backend und Frontend
Bei fast allen möglichen Shopsystemen werden Teile des Backends von Frontend genutzt. Das heißt, bestimmte Dateien werden direkt von Frontend augerufen. Oft geschieht dies mit dem Hinweis das so der Code einfach zu pflegen sei oder ähnlichem. Dies stimmt so nicht. Es zeigt nur die Faulheit, notwendigen Code auch in Einzelfällen doppelt pflegen zu müssen. Bei TobbiVM-Shop kann der Admin- Teil sogar gelöscht werden und trotzdem kann der Shop weiter genutzt werden. Es gibt vom Frontend aus kein Schlupfloch in den sensiblen Backendbereich.
Zwei getrennte Pluginarten dienen der Sicherheit.
Zum einen gibt es System-Plugins. Diese werden fest in den Shop implementiert und können aktiviert, deaktiviert oder entfernt werden. Dies betrifft z.B. alle Zahlungsarten und Versandformen. Teile davon werden im Shop durch PHP-Code eingefügt und können vom normalen Benutzer nicht entfernt werden. Da diese Plugins, zumindest zum Teil, Einfluss auf die Preisbildung, egal ob direkt oder indirekt, haben sind diese sicherheitsrelevant. Daher wird durch den Außschluss von Fremd-Plugins ein mögliches Risiko ausgeschlossen.
Das zweite, X-Plugin genannte, Plugin-System kann durch sogenannte Fremd-Plugins genutzt werden. Diese Plugins können nicht direkt Einfluss auf den Bestellprozess nehmen. Als Beispiel denke an ein Gallerie-Plugin mit dem du Produkte aus verschiedenen Perspektiven zeigen kannst.
Beispiel des IP-htaccess-Eintrags:
In der Zeile "Allow from 2341:9f8:401f:6e9d:6b4:feff:febe:f9cd/32" ist die IPV6 eures Routers (z.B. einer Fritzbox) eingetragen. Am Ende steht noch "/32". Das heißt das die ersten 32 Bit der IP immer gleich sein müssen um Zugang zu erhalten. Mehr Bits haben in der Praxis keinen Sinn! Aber so, wie oben schon geschrieben, ist ein nicht unerheblicher Teil des Internets nicht in der Lage auf diese Seite zuzugreifen.
Order Deny,Allow
Deny from All
Allow from 2341:9f8:401f:6e9d:6b4:feff:febe:f9cd/32
Auch wenn es zuerst viel Arbeit macht:
Es ist wichtig das Backend mit htacces und htpswd zu sichern und zusätzlich mit einem IP-Filter zu versehen. Dieser soll nur Zugriffe auf das Backend erlauben die über euren Provider kommen. Dazu müssen die entsprechenden IPs vom Provider in Erfahrung gebracht werden.
Lohn dieser Arbeit ist aber der verhinderte Zugriff von über 99% des Internets. Aber die haben ja auch kein Recht dazu.