Sicherheit für Integrationen
Diese Seite richtet sich an alle, die eine Integration mit Exponential bauen oder betreiben. Eine Integration öffnet eine Tür: Sie hält Zugangsdaten für zwei Systeme, sie bewegt Daten über eine Grenze, und sie läuft mit Rechten, die niemand täglich beobachtet. Die allgemeine Härtung einer Installation steht unter Sicherheitshärtung und Sicherheit und Audit; diese Seite ergänzt, was für Integrationen gilt. Die Fassung als Checkliste ist Sicherheits-Checkliste für Integrationen.
Inhalt
- Zugangsdaten
- Minimale Rechte
- Transport
- Daten anderer Systeme sind nicht vertrauenswürdig
- Ausgehende Aufrufe
- Skripte Dritter in Seiten
- Audit und Vorfälle
Zugangsdaten
| Regel | Wie in Exponential |
|---|---|
| Nie in Git | Halten Sie Geheimnisse in settings/override/<file>.ini.append.php jeder Installation und dieses Verzeichnis (oder zumindest diese Dateien) mit .gitignore aus dem Repository des Projekts heraus; nie in den eigenen settings/ einer Erweiterung |
| Oder in der Umgebung | Lesen Sie sie in Ihrer Erweiterung mit getenv(), wenn das Hosting einen Geheimnisspeicher als Umgebungsvariablen bereitstellt |
| Nie in einer URL | In der Adresse gesendete API-Schlüssel lehnt die REST-Schicht ab; tun Sie in Ihren eigenen Endpunkten dasselbe |
| Nie in Protokollen oder Paketen | Maskieren Sie sie; Pakete reisen |
| Eine Zugangsberechtigung je System, Umgebung und Zweck | Ein Schlüssel für "ERP-Import, Produktion" wird nicht vom Staging verwendet |
| Rotation geplant | Enddaten auf Schlüsseln; ein Rotationsablauf im Runbook (Persönliche API-Schlüssel) |
| Verschlüsselt abgelegt, wo das Werkzeug es unterstützt | xrowextract verschlüsselt Geheimnisse der Ziele mit einem Schlüssel in settings/override/xrowextract-secrets.key; sevenx_authentication_2fa verschlüsselt Authenticator-Geheimnisse mit [TOTPSettings] SecretKey |
settings/override hat Vorrang vor jeder Einstellung von Siteaccesses und Erweiterungen; deshalb ist es der richtige
Ort für Geheimnisse, und deshalb kann ein Override auf einem Server auch unbemerkt das Verhalten ändern:
Dokumentieren Sie jedes Override, das die Integration braucht.
Minimale Rechte
- Ein Dienstkonto je Integration, in einer eigenen Benutzergruppe, mit einer Rolle, die nur gewährt, was die Integration tut: Lesen auf den Teilbäumen, die sie exportiert, Anlegen, nach Klasse und Teilbaum begrenzt, für das, was sie importiert (Dienstkonten, Rollen und Richtlinien).
- Scopes auf Schlüsseln: Eine lesende Integration erhält einen Schlüssel nur mit dem Scope
read. - Keine Administrator-Zugangsdaten in irgendeiner Integration, niemals. Ein Import, der "Admin braucht", braucht meist eine Richtlinie mehr.
- Benutzer des Betriebssystems: Führen Sie Skripte als Benutzer der Website aus, nicht als root.
Transport
- HTTPS für jede API, jeden Webhook und jede Dateiübertragung, in beide Richtungen.
rest.ini [Authentication] RequireHTTPSlässt die REST-Schicht reines HTTP ablehnen. - Prüfen Sie Zertifikate bei ausgehenden Aufrufen (der SOAP-Client und curl tun das standardmäßig; schalten Sie es nie ab, "damit es funktioniert").
- LDAP über eine verschlüsselte Verbindung (
ldaps://); StartTLS steht nicht zur Verfügung (Login-Handler). - SFTP statt FTP; das SFTP-Ziel von
xrowextractvertraut Hostschlüsseln ausdrücklich.
Daten anderer Systeme sind nicht vertrauenswürdig
Behandeln Sie jeden Wert aus einem anderen System wie ein Formularfeld aus dem Internet:
- Prüfen Sie Typen und Längen vor der Verwendung; wandeln Sie IDs mit
(int)um; maskieren Sie Zeichenketten in eigenem SQL mit$db->escapeString(). - Wandeln Sie Rich Text mit einer kleinen erlaubten Menge an Elementen in das gespeicherte XML von
ezxmltextum; geben Sie HTML nie direkt an Templates weiter. - Lehnen Sie unsichere URL-Schemata ab; der Datentyp
ezurllehnt Skript-URLs beim Import ab, tun Sie in Ihrem eigenen Code dasselbe. - Dateipfade für Bilder und Dateien müssen im Importverzeichnis der Installation bleiben; der Datentyp
ezimagelehnt Pfade außerhalb der Installation, ihres var- und ihrer temporären Verzeichnisse ab. - Begrenzen Sie Größen: Eine bösartige oder defekte Quelle kann ein "Bild" von 2 GB senden.
Ausgehende Aufrufe
Wenn Ihre Integration Adressen aufruft, die aus Daten oder Einstellungen stammen (eine Webhook-URL, eine Bild-URL aus einem Feed):
- Erlauben Sie nur
https(undhttp, wo unvermeidlich). - Lehnen Sie private und Loopback-Adressen ab, sofern sie nicht erwartet sind, um serverseitige Request-Fälschung zu vermeiden.
- Setzen Sie Timeouts für Verbindungsaufbau und Gesamtdauer sowie eine maximale Antwortgröße.
- Der Link-Checker des Kernels zeigt das Muster:
cronjob.ini [linkCheckSettings] AllowedPrivateHosts[].
Skripte Dritter in Seiten
Analysewerkzeuge, Chat-Widgets und Tag-Manager laufen in den Browsern der Besucher. Exponential sendet eine Content Security Policy; ein Skript von einem anderen Host muss dort erlaubt sein, und Inline-Skripte sind es nicht (Content Security Policy). Fügen Sie jeden Host eines Drittanbieters bewusst hinzu, laden Sie Skripte aus Dateien Ihres Designs und halten Sie die Folgen für den Datenschutz mit dem Kunden fest (keine Rechtsberatung).
Audit und Vorfälle
- Das Audit-Protokoll zeichnet die Verwendung und Ablehnung von API-Schlüsseln (
access.apikey.*), Schreibvorgänge vonexpservices(service.*) und Inhaltsänderungen auf. Prüfen Sie das Dienstkonto der Integration nach den ersten Läufen im Audit. - Leiten Sie Sicherheitsereignisse mit dem Syslog- oder Webhook-Ziel an das SIEM des Kunden weiter (Ausgehende Webhooks).
- Wenn Zugangsdaten offengelegt sein könnten: Widerrufen Sie sie sofort, erstellen Sie neue, prüfen Sie das Audit auf ihre Verwendung und informieren Sie den Kunden. Melden Sie Schwachstellen in Exponential vertraulich an [email protected].
Verwandte Seiten
- Sicherheitshärtung
- Sicherheit und Audit
- Sicherheit in Erweiterungen
- Sicherheitsverantwortung von Partnern
- Sicherheits-Checkliste für Integrationen
- Freie Dokumentation: Diese Seite darf unter der GNU FDL 1.3 frei kopiert, übersetzt und verbessert werden.
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.