May '21 4
Heute haben wir eine Empfehlung aus der Technik, die wir in unseren Projekten umsetzen und sicher auch für Andere interessant ist.

Der Shop speichert seine Einstellungen (Zugangsdaten und Konfigurationen) in der Datei config.inc.php. Darin sind sensible Daten enthalten (z.B. Zugangsdaten zur Datenbank). Deshalb soll diese Datei normalerweise nicht in die Versionsverwaltung aufgenommen werden. Nun können darin aber auch Konfigurationseinstellungen enthalten sein können, die aus diversen Gründen gesichert werden sollten.

Um diesen Konflikt zu lösen, sollten sensible projektspezifische Daten nur dynamisch in die config.inc.php eingefügt werden. Ein möglicher Weg hierfür sind die Environment-Variablen. Diese werden global oder projektspezifisch auf dem Server gesetzt und können über $_ENV['…'] in die Shopkonfiguration eingebunden werden.

Für das Setzen der ENV-Variablen gibt es folgende Wege:
  • über $ set systemweit
  • über EXPORT command z.B. in der .bashrc
  • als SetEnv in .htaccess
  • mit putenv() in PHP-Scripten
  • als .env-Datei und Einbindung über ein PHP-Paket

Die meisten Möglichkeiten haben Vor- und Nachteile. So müssen die ENV-Variablen bei Aufrufen über den Webserver sowie auch bei Aufrufen über CLI (Terminal oder auch Cron-Aufrufe) verfügbar sein. Als unkomplizierte Lösung zeigt sich bislang die Verwendung der .env-Datei in Verbindung mit phpDotEnv.

Für die Einrichtung ist Folgendes auszuführen:

Dem Shopprojekt ist dieses Paket hinzuzufügen (Alternativen mit geänderten Aufrufen sind ebenfalls verfügbar):

composer require vlucas/phpdotenv

Im Shoproot wird die Datei .env mit diesem Inhalt angelegt. Diese Datei (und auch nur diese) wird Sammelbecken solcher sensiblen Daten werden:

### important notes
# use integer 0 or 1 for boolean values instead of false or true

### required
## Database
OXID_CONF_DBHOST="127.0.0.1"
OXID_CONF_DBPORT="3306"
OXID_CONF_DBNAME=""
OXID_CONF_DBUSER="${OXID_CONF_DBNAME}"
OXID_CONF_DBPWD=""

## URL and Paths
OXID_CONF_SHOPURL="https://www.myshop.com"
OXID_CONF_SSLSHOPURL="${OXID_CONF_SHOPURL}"
OXID_CONF_SHOPDIR="/www/htdocs/www.myshop.com.com/source"
OXID_CONF_COMPILEDIR="${OXID_CONF_SHOPDIR}/tmp"

### optional (disable, if unused)
## URL and Paths
OXID_CONF_ADMINSSLURL=""

## MISC
OXID_CONF_DEBUG=0
OXID_CONF_LOGERRORS=1
OXID_CONF_ERRORREPORTING=1
OXID_CONF_DISPLAYERRORS=0
# OXID_CONF_SKIPVIEWUSAGE=0


Die config.inc.php wird gleich in den ersten Zeilen wie folgt erweitert:

require_once __DIR__.DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'vendor'.DIRECTORY_SEPARATOR.'autoload.php';
$dotenv = \Dotenv\Dotenv::createImmutable(__DIR__.'/..');
$dotenv->load();
$dotenv->required([
'OXID_CONF_DBHOST', 'OXID_CONF_DBPORT', 'OXID_CONF_DBNAME',
'OXID_CONF_DBUSER', 'OXID_CONF_DBPWD', 'OXID_CONF_SHOPURL',
'OXID_CONF_SHOPDIR', 'OXID_CONF_COMPILEDIR'
])->notEmpty();


Alle weiteren Zeilen, die sensible oder installationsabhängige Daten enthalten, werden beispielhaft so umgebaut. Dies sollte für alle oben genannten Variablen durchgeführt werden:

// Database connection information
$this->dbType = 'pdo_mysql';
$this->dbHost = $_ENV['OXID_CONF_DBHOST']; // database host name
$this->dbPort = $_ENV['OXID_CONF_DBPORT']; // tcp port to which the database is bound
$this->dbName = $_ENV['OXID_CONF_DBNAME']; // database name
$this->dbUser = $_ENV['OXID_CONF_DBUSER']; // database user name
$this->dbPwd = $_ENV['OXID_CONF_DBPWD']; // database user password
$this->sShopURL = $_ENV['OXID_CONF_SHOPURL']; // eShop base url, required
$this->sSSLShopURL = $_ENV['OXID_CONF_SSLSHOPURL']; // eShop SSL url, optional
$this->sAdminSSLURL = $_ENV['OXID_CONF_ADMINSSLURL']; // eShop Admin SSL url, optional
$this->sShopDir = $_ENV['OXID_CONF_SHOPDIR'];
$this->sCompileDir = $_ENV['OXID_CONF_COMPILEDIR'];


Damit ist die Config-Datei ausreichend bereinigt und kann so nun ins Repository übernommen werden. Die .env-Datei sollte die Berechtigung 400 erhalten und darf nicht in die Versionsverwaltung aufgenommen werden. Dies kann durch einen Eintrag in der .gitignore sichergestellt werden. Als Kopiervorlage empfiehlt sich, statt dessen eine bereinigte .env.example im Repo abzulegen.

Sofern nötig, können auch für andere Fälle ENV-Variablen abgelegt werden. Denkbar ist dies z.B. für Lizenzschlüssel, die scriptbasiert im Shop hinterlegt werden.

Diese Integration ergänzt die bestehenden ENV-Variablen, sofern diese bisher nicht gesetzt wurden. Existieren diese schon aus anderen Quellen (z.B. .htaccess), bleiben diese unangetastet. Der Vorteil ergibt sich daraus, dass serverabhängig andere Einstellungen vorgegeben werden können, ohne dass die .env-Settings diese überschreiben dürfen.

Posted by Daniel Seifert

Dec '20 8
Für unser Modul Übersetzungsassistent gibt es ab sofort ein neues Update und Patch für die Shopversionen ab 6.0.0

4.1.0.0

  • verwendbar in OXID 6.2
  • Front- und Backend können Einträge mit identischer ID haben
  • OXID-Exporte enthalten kein "charset", um ungewünschte Importe zu verhindern
  • Datenbank-Index ist zufällige ID anstatt Ident
  • Maskierung von Sonderzeichen optimiert
  • Übersetzungscache wird aus richtigem Bereich (Front-/Backend) generiert, wenn Einträge in beiden Bereichen existieren

4.1.0.1

  • installierbar in OXID 6.2.3
  • Setup verarbeitet auch unvollständig abgeschlossene Zwischenschritte des Updates auf 4.1
  • fehlerhafte Kodierung der Setup-Datei korrigiert
Erwerben können Sie das Modul wie gewohnt über unseren Moduleshop.

Bearbeiten Sie Ihre verschiedenen Sprachen ganz einfach und bequem im Admin

Posted by Daniel Seifert

Jan '20 30
Im Laufe eines Shoplebens sammeln sich so manche Module und Themes an. Bei manchen stellt sich heraus, dass sie doch nicht gebraucht werden und liegen dann meist deaktiviert in der Installation.

Wir empfehlen dringend, diese vom Server zu löschen. Selbst im inaktiven Zustand können sich diese Erweiterungen noch in den Funktionsablauf einhaken und unerwartete Verhalten hervorrufen.

Oxid geht mit der Shopversion 6 den richtigen Weg, optionale Komponenten als Module auszulagern. Leider werden dennoch mit einer Standardinstallation diverse Module zwanghaft mitinstalliert. Vielfach werden diese nicht gebraucht. Deren Entfernung ist (durch die Verknüpfung mit dem OXID-Standardshop) leider nicht so einfach möglich. Daher haben wir dafür komplett leere Ersetzungen erstellt, die als Platzhalter für die originalen Module dienen. So gibt es keine Fehlermeldungen bei zukünftigen Updates, aber auch keine Programmdateien, die Fehler verursachen können.

Die Ersetzungen lassen sich einfach mit Composer installieren. Für diese Module haben wir die Installation vorbereitet:
Genauere Hinweise zur Installation haben wir in der README.md jedes dieser Pakete aufgenommen.
Sollte nachträglich doch wieder eines der Zusatzmodule nötig werden, lassen sich unsere Ersetzungen auch mit wenig Anpassungen wieder entfernen. Dann wird sofort wieder das von OXID gelieferte Modul installiert.

Diese Empfehlung gilt natürlich nicht nur für den OXID-Shop. Auch andere Systeme (z.B. Wordpress-Installationen ...) sollten keine inaktiven Plugins oder Themes enthalten.

Posted by Daniel Seifert

Mar '18 14
Onlineshops haben neben der zahlenden Kundschaft auch manchen unerwünschten Besucher auf der Gästeliste stehen. Das können verirrte Bots sein, aber auch ScriptKiddies oder böswillige Angreifer belasten den Shop durch exzessive Seitenaufrufe. Damit kann Ihr Server unter Umständen bis zur Unbenutzbarkeit ausgelastet werden.
Die Server blockieren dann aus Sicherheitsgründen weitere Anfragen. Leider werden so auch die gewünschten Shopbesucher ausgesperrt.

In dieser Situation ist der erste Schritt, den Angreifer zu lokalisieren und vom Shop auszusperren. Eventuell lässt sich dieser an bestimmten IP-Adressen, -Bereichen oder Hostnames festmachen. Beim Eingrenzen hilft Ihnen Ihr Serverprovider weiter. Sofern Bots eine eindeutige User-Agent-Kennung mitsenden, kann auch diese zur Filterung verwendet werden.

Die Einrichtung einer IP-Sperre bei Profihost ist hier beschrieben:
https://www.profihost.com/forum/webhosting/wie-kann-ich-den-zugriff-auf-meine-seite-sperren-1707/

Kommt der Angriff aus einem Land, aus dem sonst kaum Besucher kommen, kann man auch dieses gesamte Land (alternativ auch gesamte Kontinente) aussperren:
https://www.profihost.com/forum/webhosting/lander-via-mod_geoip-sperren/

Bei der Umsetzung einer Sperre stehen wir Ihnen gern zur Verfügung.

Posted by Daniel Seifert

Feb '18 20
OXID veröffentlichte vor Kurzem die neue Shopversion 6. Damit gehen auch einige technische Veränderungen
auf Seiten des Shops und unserer Module einher.

Verfügbarkeit unserer Module für OXID 6


Für die neue Shopversion ist für alle Module mehr oder weniger Umbauarbeit notwendig. Zumindest müssen die Module
in der neuen Shopversion getestet werden. Daher sind unsere bisherigen Module nicht automatisch für OXID 6 verfügbar.
Wir arbeiten derzeit mit Hochdruck daran, unsere Module für die neue Shopversion anbieten zu können. Aus
Aufwandsgründen entscheiden wir uns bei manchen Modulen vorerst für Zwischenlösungen, die noch nicht alle neuen
Funktionen unterstützen werden (so genannte Legacy-Module). Die komplette Umstellung erfolgt dann zeitnah und wird
später mit einem Update verfügbar sein.

Composer


Die Installation des OXID-Shops erfolgt nun über Composer.

Composer ist eine Paketverwaltung, die die Abhängigkeiten unterschiedlicher Softwarepakete sicher stellt.
Der Shop muss damit nicht mehr aus einem komplexen Paket bestehen, sondern setzt sich aus diversen Einzelelementen
zusammen. Composer stellt alle Pakete/Bibliotheken zusammen und beachtet dabei die Systemanforderungen und Abhängigkeiten.
Zusätzlich kann man einzelne Pakete/Bibliotheken mit einfachen Befehlen aktualisieren, hinzufügen und entfernen.
Die Installation des Shops ändert sich damit so, dass dieser im Standard mit Hilfe der Konsole (Eingabeaufforderung
auf dem Server) per Befehl installiert und aktualisiert wird.
Besprechen Sie bitte mit Ihrem Serverprovider, ob Ihnen die Serverkonsole zur Verfügung steht.

Die Vorteile der Installation via Composer möchten wir auch für unsere Module nutzen. Daher stellen wir diese
schrittweise ebenfalls auf Composer um.

Was ändert sich bei den composerfähigen Modulen?:
Sie können alle Module wie gewohnt in unserem Oxidmodule-Shop erwerben. Dort finden Sie ebenfalls die Installations-
pakete für unsere Module zum Download. Im Gegensatz zu unseren bisherigen Erweiterungen werden die Composer-Pakete
jedoch keine Moduldateien mehr beinhalten. Sie finden darin lediglich die Dokumentation, wie Sie das Modul selbst
installieren können. Die benötigten Dateien liegen für Composer erreichbar an einer zentralen Stelle. Beachten Sie
daher in der kommenden Zeit die Installationsanleitung unserer Module besonders.

Wie laufen die Modulinstallationen über Composer ab?:
Den kompletten Installationsablauf entnehmen Sie bitte der Installationsanleitung des jeweiligen Moduls.
Die Module werden mit einen Konsolenbefehl im composer Projekt (Ihr Shop) registriert und installiert. Durch die
automatische Anforderungsprüfung sucht sich Composer selbst das für Ihren Shop passende Installationspaket.
Sie aktivieren das neue Modul wie gewohnt im Adminbereich. Am sonstigen Ablauf ändert sich nichts.
Natürlich bieten wir Ihnen auch weiterhin unseren Installationsservice an. Kontaktieren Sie uns dazu bei Bedarf
bitte einfach.

Möchten Sie mehr zu Composer erfahren, besuchen Sie bitte die Seite https://getcomposer.org/.

Verschlüsselung


Wir liefern unsere Module im Standard als verschlüsselte Software aus. Im Rahmen der neuen Shopversion wechselten
wir unseren Encoder und verwenden nun den IonCube Loader. Diese Anforderung finden Sie in der Installationsanleitung unserer
Module. Bitte fragen Sie ggf. bei Ihrem Serverprovider nach, wie IonCube Loader auf Ihrem System aktiviert wird.
Composer prüft bei der Installation des Moduls nach, ob der Loader verfügbar ist.
Wichtig: unsere Module unterstützen ab OXID eShop 6 keinen Zend Guard Loader mehr.

Lizenzen


Unsere Module setzen zu Ihrem Vorteil auch weiterhin Lizenzschlüssel ein. Damit sind zum Beispiel Testversionen
und preisgünstige Moduleditionen möglich. Auch das Format der Lizenzschlüssel ändert sich. Haben Sie Lizenzschlüssel
im Einsatz, die auch für OXID 6 verwendet werden sollen (z.B. bei Jahreslizenzen), kann ein Tausch des Schlüssels
notwendig sein. Kontaktieren Sie uns hierzu bitte, dass wir Ihnen einfach einen aktualisierten Lizenzschlüssel
zusenden können.

Haben Sie Fragen zu diesen Änderungen, kontaktieren Sie uns bitte einfach.

Posted by Daniel Seifert

Nov '17 22
OXID veröffentlicht die nächste Shopversion.

Hierbei handelt es sich um die neue Major-Version 6. Die Versionsnummer 6.0.0 ist seit Langem wieder für die Community, Professional und Enterprise Edition identisch.

Für die neue Shopsoftware wird es die gewohnten Downloadpakete nicht mehr geben. Die Installation erfolgt über Composer. Die Beschreibung dafür gibt es für die Community Edition unter diesem Link. Alle Kunden mit PE- oder EE-Version werden von OXID separat informiert.

Die neue Version kann nun unter PHP 5.6 und PHP 7 installiert werden. Teil der Standardinstallation sind Module für Amazon Pay, Paymorrow, Paypal, PAYONE und ein WYSIWYG-Editor (auch in der Community Edition). Der Adminbereich erfuhr eine optisch gelungene Überarbeitung.

Durch viele (notwendige) technische Änderungen werden bisherige Module nur eingeschränkt darin funktionieren. Sprechen Sie mit Ihrem Systembetreuer, wenn Sie ein Upgrade planen. Unsere D3-Module werden in Kürze für die neue Shopversion verfügbar sein. Wir halten Sie in diesem Blog auf dem Laufenden.

Die Liste der Änderungen des OXID Shop 6 steht unter diesen Links zur Verfügung:

Posted by Daniel Seifert

Aug '17 9
OXID veröffentlicht die nächsten Shopversionen. Die Liste der Änderungen steht unter dem Link hinter der jeweiligen Version zur Verfügung:
Die CE-Version kann hier bezogen werden.
Alle Kunden mit PE- oder EE-Version werden von OXID separat informiert.

Posted by Daniel Seifert

Apr '17 26
OXID veröffentlicht die nächsten Shopversionen. Die Liste der Änderungen steht unter dem Link hinter der jeweiligen Version zur Verfügung:
Die CE-Version kann hier bezogen werden.
Alle Kunden mit PE- oder EE-Version werden von OXID separat informiert.

Posted by Daniel Seifert

Feb '17 14
Im Moment ist die Umstellung von HTTP-Seiten zur generell verschlüsselten Auslieferung über HTTPS in aller Munde. Hintergrund ist, dass die Firefox- und Chrome-Browser seit Neuestem HTTP-Seiten unter bestimmten Umständen ausdrücklich als "nicht sicher" markieren. Lesen Sie mehr zum Thema in unserem Beitrag.

Wurde Ihre Seite komplett auf HTTPS umgestellt, sollten Sie auch Ihre Analytics-Einstellungen darauf hin anpassen:

  • richten Sie in den Kontoeinstellungen Ihrer Google-Search-Console (ehem. Webmaster-Tools) neben Ihrer bisherigen Property auch eine neue Property für HTTPS ein
  • verknüpfen Sie diese in Ihrer bestehenden Analytics-Property
  • löschen Sie die bisherige Property bitte nicht, nur so können Sie den Wechsel der Indizierung und Impressions zu HTTPS nachvollziehen
  • nutzen Sie die URL in Google MyBusiness, ändern Sie die Adresse bitte auch dort

Dieses Modul stellt Ihnen die Einbindung verschiedener Google Dienste in Ihren Shop zur Verfügung.

Posted by Daniel Seifert

Oct '16 26
OXID veröffentlicht die nächsten Shopversionen. Die Liste der Änderungen steht unter dem Link hinter der jeweiligen Version zur Verfügung:
Die CE-Version kann hier bezogen werden.
Alle Kunden mit PE- oder EE-Version werden von OXID separat informiert.

Posted by Daniel Seifert

(Page 1 of 17, totaling 170 entries)