Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,059 of 9,059 pages
About the help in other languages
All help pages

Die Datenbank absichern

Die Sicherheitsmaßnahmen, die die Datenbank einer Exponential-Website betreffen - wo die Zugangsdaten liegen und wie Sie sie schützen, wie Administration und Konsole Geheimnisse maskieren, Passwörter auf Kommandozeilen…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/database-administrators/securing-the-database.md

On this page

This page is a translation. Read the English original

Die Datenbank absichern

Diese Seite richtet sich an Datenbankadministratoren, die die Sicherheit der Datenbank einer Exponential-Website prüfen. Sie beantwortet: wo die Zugangsdaten der Datenbank liegen, wer sie lesen kann, wo sie durchsickern könnten (Kommandozeilen, Debug-Ausgabe, Sicherungen), wie Sie den Netzwerkzugang je Engine begrenzen und was die Anwendung festhält. Die allgemeine Härtung der Website steht unter Sicherheitshärtung und in Kapitel 13; diese Seite ist der Teil der Datenbank daran.

Inhalt

  1. Wo die Zugangsdaten liegen
  2. Die Override-Dateien schützen
  3. Was die Anwendung zeigt und verbirgt
  4. Passwörter auf Kommandozeilen
  5. Netzwerkzugang
  6. Die SQLite-Datei
  7. Debug-Ausgabe zeigt SQL
  8. Sicherungen sind Geheimnisse
  9. Was festgehalten wird
  10. Checkliste

Wo die Zugangsdaten liegen

DateiWas sie enthält
settings/override/site.ini.append.php[DatabaseSettings] User, Password und Replikat-Anmeldungen
settings/override/file.ini.append.php und config.cluster.phpdie Datenbankanmeldung des DFS-Clusters, wenn Clustering verwendet wird
settings/override/ezoracle.ini.append.phpOracle-Verbindungseinstellungen (kein Passwort, außer Sie legen eines dort ab)
settings/siteaccess/<name>/site.ini.append.phpdie eigene Datenbank eines Siteaccess, falls vorhanden

Quelle: 13.3 Geheimnisse in settings/override.

Die Override-Dateien schützen

  • Committen Sie settings/override/ nie in die Versionsverwaltung und kopieren Sie es nie an einen öffentlichen Ort.
  • Halten Sie die Dateien nur für den Benutzer der Website lesbar, wo nichts anderes sie braucht: chmod 640, Eigentümer der Benutzer der Website oder root, Gruppe die Gruppe der Website.
  • Sichern Sie sie mit der Datenbank, als Geheimnisse.
  • Kopieren Sie sie bei jedem Umzug der Installation mit.

Was die Anwendung zeigt und verbirgt

Eine Regel, expSecretRule, entscheidet, was für exp:ini, die Einstellungsseiten, das Audit-Log und Setup > Systeminformationen ein Geheimnis ist:

  • ein Wert, dessen Name Wörter wie Passwort enthält, zeigt nur "(set, hidden)" oder ********;
  • der Datenbankbenutzer ist im Bericht der Systeminformationen immer verborgen;
  • das Passwort in einer Adresse wird abgeschnitten (mysql://user:***@db/site).

exp:ini get und list maskieren Geheimnisse, sofern nicht --show-secrets angegeben ist (Systeminformationen, was nie gezeigt wird). Geben Sie die Einstellungsansichten (setup/setup) trotzdem nur Administratoren.

Passwörter auf Kommandozeilen

Ein als Kommandozeilenargument übergebenes Passwort ist für andere Benutzer der Maschine in der Prozessliste sichtbar und bleibt in der Shell-Historie. Verwenden Sie lieber, was jedes Werkzeug stattdessen anbietet:

WerkzeugSicherer Weg
exp:installdie Umgebungsvariable EXP_INSTALL_DB_PASSWORD
ora-grant.php- als Passwort und ORACLE_NEW_PASSWORD in der Umgebung
mysql, mysqldump-p ohne Wert (Abfrage) oder eine Optionsdatei, die nur Sie lesen können
psql, pg_dumpdie Abfrage oder eine Datei .pgpass mit Modus 0600
mongosh, mongodumppasswordPrompt() oder eine URI ohne Passwort, sodass das Werkzeug fragt
ezsqldumpschema.php, ezsqlinsertschema.php, ezsqldiff.phpsie nehmen nur --password=: Führen Sie sie auf einer Maschine aus, die Sie kontrollieren, oder mit einem vorübergehenden Passwort, das Sie danach ändern

Netzwerkzugang

EngineMaßnahme
PostgreSQLlisten_addresses nur auf der nötigen Schnittstelle; pg_hba.conf-Zeilen nur für die Webserver, diese Datenbank und diesen Benutzer, mit einer Passwortmethode
MySQL, MariaDBan die nötige Schnittstelle binden; Host-Teil des Kontos auf die Webserver beschränkt
MongoDBZugriffskontrolle an; an die nötige Schnittstelle binden
Oracleder Listener nur von den Webservern aus erreichbar
Alleeine Firewall, die den Datenbankport nur von den Webservern und Cron-Hosts zulässt; TLS, wo die Datenbank auf einer anderen Maschine liegt, auf dem Server und in der Client-Bibliothek konfiguriert

Exponential hat keine eigene Einstellung für Client-Zertifikate oder TLS-Optionen von MySQL- oder PostgreSQL-Verbindungen; es gilt, was die Client-Bibliothek aus ihren Standards nimmt. Prüfen Sie die Verschlüsselung auf der Serverseite, wenn Ihre Richtlinie sie verlangt.

Die SQLite-Datei

Die Datenbankdatei darf nie über HTTP ausgeliefert werden. Prüfen Sie es auf Ihrem eigenen Host; alles außer 200 ist richtig:

curl -sI https://www.example.com/var/storage/sqlite3/exponential.db | head -1

Halten Sie das Verzeichnis nur für die Prozesse der Website gruppenschreibbar, nie für alle schreibbar (SQLite-Dateien, Eigentümer und Rechte).

Debug-Ausgabe zeigt SQL

[DatabaseSettings] SQLOutput=enabled schreibt jede Anweisung in die Debug-Ausgabe. Schalten Sie die Debug-Ausgabe nur für Ihre eigene Adresse ein (DebugByIP=enabled, DebugIPList[]), nie für alle auf einer öffentlichen Website (12.4 Debug-Ausgabe).

Sicherungen sind Geheimnisse

Ein Datenbank-Dump enthält die E-Mail-Adresse und den Passwort-Hash jedes Benutzers. Verschlüsseln Sie Sicherungen im Ruhezustand, halten Sie sie vom Webserver fern, begrenzen Sie, wer sie lesen kann, und löschen Sie alte Generationen nach Plan (Sicherungen je Engine, Aufbewahrung von Logs und Daten).

Was festgehalten wird

Der Audit-Trail hält administrative Aktionen fest; jeder Lauf der Upgrade-Prüfung und jeder Download ihres Berichts wird als system.upgrade.run geschrieben (Die Upgrade-Prüfung, Audit). Anweisungen, die Sie direkt gegen die Datenbank ausführen, hält Exponential nicht fest; verwenden Sie dafür das eigene Auditing der Engine.

Checkliste

  • To do: settings/override/ hat Modus 640 und ist nicht in der Versionsverwaltung.
  • To do: Kein Datenbankpasswort in einer Shell-Historie, Crontab oder einem Skript.
  • To do: Der Datenbankport ist nur von den Webservern und Cron-Hosts erreichbar.
  • To do: Die SQLite-Datei liefert über HTTP kein 200.
  • To do: Die Debug-Ausgabe ist auf die Adressen von Administratoren beschränkt.
  • To do: Sicherungen sind verschlüsselt und zugriffsgeschützt.

Verwandte Seiten

Werden Sie Exponential-Partner

Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x