B2B e-Commerce Knowhow (Teil 1): Sicherheit

7 Mrz

Abbildung digitale Sicherheit, Quelle: pixabay.com

Das Thema Sicherheit ist für Onlineanbieter ein Dauerbrenner. Hacker und Softwarehersteller befinden sich in einem ewigen Wettrennen. Fast im Wochentakt werden Berichte zu kritischen Sicherheitslücken in CMS- und Shop-Lösungen publik. Gerade erst wies sogar die Stiftung Warentest erneut auf ein bereits seit Monaten bekanntes Sicherheitsproblem bei einem großen Open-Source-Shopsystem hin, welches in den einzelnen Shops bis heute nicht vollständig ausgeräumt ist. Betroffen von Sicherheitslücken sind kleine Shopbetreiber ebenso wie große Player, wie der Fall Yahoo zeigt.

Sicherheit in B2B Onlineshops

Alles nicht relevant für B2B e-Commerce? Selbstverständlich sind kompromittierte Kundendaten auch im B2B e-Commerce ein Problem und müssen so gut es geht verhindert werden. Darüber hinaus hat das Thema jedoch noch eine viel größere Dimension: im Zeitalter der integrierten Systeme, in denen der Onlineshop Daten direkt in interne Firmensysteme wie ERP, CRM oder PIM einbindet, sind die Risiken von Sicherheitslücken unternehmenskritisch. Einen B2B Onlineshop als Standalone-Lösung zu betreiben ist jedoch auch keine Option. Die Frage ist also, wie schützen Sie Ihr ERP und die wichtigen Daten?

Das richtige Konzept bei der direkten Anbindung an firmeninterne Systeme

Viele Systeme bieten heute von Haus aus die Anbindung über offene Standardschnittstellen wie z.B. Web Service oder die REST API. Dies ist praktisch und erleichtert die Integration verschiedener Systeme. Der Nachteil ist jedoch, dass diese Schnittstellen auch Einfallstore für einen Angriff darstellen, wie erst kürzlich im Fall der WordPress REST API gesehen.

Eine bewährte Lösung stellt hier das Zwischenschalten einer Sicherheitsinstanz dar. So fungiert im Fall unserer Shoplösung silver.eShop der eingesetzte web.connector als Sicherheitsinstanz. Es erfolgt kein direkter Zugriff vom Onlineshop (DMZ) auf das ERP. Es werden nur  definierte Nachrichten zum ERP oder CRM übergeben. Darüber hinaus beinhaltet der Shop ein Monitoring, welches bei Unregelmäßigkeiten den Administrator informiert.

Neben fehlenden technischen Massnahmen führen oftmals konzeptionelle Fehler zu hohen Sicherheitsrisiken: bei vielen Online Shops werden Daten aus ERP oder CRM Systemen importiert. Dies kann im Falle eines Angriffs zu einem massiven Sicherheitsproblem führen. Wenn 10.000 vollständige Kundendatensätze in den Shop importiert werden, dann stellt dies bereits ein hohes Risiko dar. Allerdings unterstützen viele Standard Shops nur diese unsichere Import Variante.

Moderne und sichere Software-Plattformen

Entscheidenen Einfluss auf die Sicherheit hat die verwendete Software oder Platform. Je älter die Platform, umso kritischer ist in der Regel die Sicherheitsfrage. Es gibt zudem unterschiedliche Modelle, wie Zugriffsrechte und Sicherheit  geregelt werden.

Das in silver.eShop integrierte CMS eZ Platform setzt so z.B. auf ein rollenbasiertes Zugriffsmodell, welches den ohne Zuweisung einer entsprechenden Rolle zunächst einmal keinerlei Zugriff auf Inhalte order Funktion irgendwelcher Art gestattet. Dieses Sicherheitskonzept wird per Definition für alle Funktionen und Inhalte der Plattform genutzt.  eZ Plattform wird in sicherheitsrelevanten Bereichen wie bei Banken eingesetzt und regelmäßig überprüft.

Auch das eingesetzte Framework Symfony gilt gemeinhin als eines der modernsten und sichersten, jedoch können Entwickler auch hier schwerwiegende Fehler machen, die Hackern Tür und Tor öffnen.

Viele Anpassungen machen Systeme unsicher

Bei vielen Integrierten B2B  e-Commerce Projekten wird keine Standardlösung für B2B eingesetzt und die Entwickler passen das Produkt so stark an, dass Sicherheitslücken entstehen. Technische Restriktionen zwingen oftmals zu ungewöhnlichen Lösungen: viele an sich sichere Module werden komplett neu entwickelt, zu viele Daten aus dem ERP müssen importiert werden. Dies kann zu erheblichen Sicherheitsrisiken führen.

Häufig wird auf Basis eines VW Golf (=B2C Shop) ein LKW gebaut (=komplexer und integrierter B2B Shop). Für den Strassenverkehr unterbindet zumindest in Deutschland der TÜV oder die Dekra dies. Für Online-Shops gibt es entsprechende Prüfungen leider nicht.

Achten Sie also darauf, dass Sie eine B2B-Lösung einsetzten, die auch dafür entwickelt wurde.

Updates, Updates, Updates

Im Wettlauf von Sicherheitsexperten, Entwicklern, Hackern und Datendieben wird es zwangsläufig immer wieder Situationen geben, in denen Sicherheitslücken aufgedeckt werden. Wenn das der Fall sein sollte, dann hat ein Sicherheitsupdate oberste Priorität. Regelmäßige Sicherheitsupdates müssen zeitnah eingespielt werden. Wenn möglich, greifen Sie auf automatisierte Updates zurück.

Im Rahmen eines eZ Enterprise Vertrags erhalten Sie Sicherheits-Updates automatisch, im Gegensatz zur Open Source Version.

Zum Weiterlesen: Das Blog onlineshop-basics.de hat vor einiger Zeit in einem Artikel die verschieden Risiken für Onlineshops und mögliche Lösungsansätze informativ und übersichtlich zusammengestellt.

Operator in PHP nutzen

3 Mai
Reproduktion in: Mix & Genest (Hsg.), 75 Jahre Mix & Genest, 1879-1954, E.Klett Stuttgart, o.J.

Reproduktion in: Mix & Genest (Hsg.), 75 Jahre Mix & Genest, 1879-1954, E.Klett Stuttgart, o.J.

Was würden wir nur ohne einen „Operator“ machen? Ohne dieses kleine Hilfsmittel würde wahrscheinlich keine eZ Publish Seite funktionieren. Wahrscheinlich? Nein, ganz sicher nicht. Oft werden sie nur in Templates benutzt, ob jetzt Twig oder eZ Template. Doch was ist, wenn man auf einen Operator auch mal über PHP zugreifen möchte?

Continue reading “Operator in PHP nutzen” »

eZ Find – per Zufall sortieren

10 Dez

Ich habe gerade die Problemstellung gehabt, per Zufall in Solr zu sortieren.

{def $search = fetch('ezfind', 'search', hash(
	'query',  '',
	'class_id', array('article'),
        'limit', '10',
	'sort_by', $sort_by
}

 normal gibt man ja in meinem Beispiel im sort_by einen Wert mit dem Feldnamen an, nach dem sortiert wird. (article/name)

mit folgenden Beispiel kann man per Zufall sortieren:

{def $search = fetch('ezfind', 'search', hash(
	'query',  '',
	'class_id', array('article'),
        'limit', '10',
	'sort_by', hash(concat(rand(),'_random'),'asc')
}

Die eigentliche Syntax mal genauer betrachtet:

ZUFALLSZAHL/-TEXT_random 

Das wars schon, eigentlich sehr simpel.

Chrome Erweiterung für eZ Publish Backend

16 Okt

Ich surfe gerade auf einer meiner eZ Publish Seiten und siehe da – ein Tipfehler. 🙁 Ab ins Backend – Artikel suchen, bearbeiten und live stellen. Das sind Schritte die jeder Redakteur sicher kennt und schon mehrmals erlebt hat.

Den Backend Link zur Seite hat man wahrscheinlich als Bookmark abgespeichert, doch bis man beim Artikel ist, können mehrere Sekunden oder Minuten vergehen. Felix Schliemann von silver.solutions hat sich nun genau diesem Problem gestellt und sich überlegt wie man hier dem Redakteur helfen könnte. Zeit ist nun mal Geld.

Continue reading “Chrome Erweiterung für eZ Publish Backend” »