Sicherheit und Datenschutz
TellMyShop speichert in Ihrem Shop nur, was Sie freigeben, und jede Änderung lässt sich rückgängig machen. Der Chat meldet sich mit OAuth 2.1 bei Ihrem Shop an, Kundendaten sind für die KI nicht zugänglich und im Änderungsverlauf verschlüsselt, und der Code wurde nach OWASP ASVS 5.0, den OWASP Top 10 für LLM-Anwendungen, OAuth 2.1 mit RFC 9700 und den CWE Top 25 auf Sicherheit geprüft. Diese Seite erklärt in einfachen Worten, wie das funktioniert. Der Abschnitt am Ende ist für Ihren IT-Betreuer oder Entwickler.
Auf einen Blick
- Eine Vorschau und Ihre Freigabe für jede Änderung. Der Chat zeigt vorher → nachher und speichert erst nach Ihrem „Ja“.
- Jede Änderung lässt sich rückgängig machen: mit einem Satz im Chat oder aus dem Änderungsverlauf. Vor der ersten Änderung jedes Tages wird die ganze Datenbank gesichert.
- Chat-Anmeldung mit OAuth 2.1. Der Chat verbindet sich erst, wenn Sie im Fenster Ihres Shops auf „Erlauben“ klicken. Keine Passwörter oder Schlüssel zum Kopieren.
- Kundendaten sind für die KI nicht zugänglich und verschlüsselt im Änderungsverlauf und in Dateisicherungen.
- Feste Sperren: Passwörter, API-Schlüssel, Zahlungen, Steuern, Bestellstatus und Konten sind auf jeder Stufe außer Reichweite des Chats.
- Ohne Vermittler: Der Chat verbindet sich direkt mit dem Modul in Ihrem Shop.
- Sicherheitsprüfung nach vier Standards, mit automatischen Tests und Tests in einem PrestaShop-Shop (Details).
Ohne Ihr Ja ändert sich nichts
Jede Änderung hat drei Schritte:
- Vorschau. Der Chat zeigt, was er ändern will: alten und neuen Text, alten und neuen Preis, Warnungen.
- Freigabe. Der Chat wartet. Er speichert erst, wenn Sie „Ja“ antworten.
- Speichern. Die Änderung wird so gespeichert, als hätte ein Mitarbeiter im Backoffice auf „Speichern“ geklickt.
Eine Vorschau gilt 30 Minuten und funktioniert einmal. Ändert in der Zwischenzeit jemand dasselbe Produkt im Backoffice, muss der Chat eine neue Vorschau zeigen.
Lesen (Prüfungen, Suchen, Berichte) ändert nichts und braucht keine Freigabe.
Der TellMyShop-Standard: wie der Chat über Änderungen spricht
Vor jeder Änderung zeigt der Chat, was sich ändert, nennt das Risiko und wie man es rückgängig macht, und fragt nach Ihrer Freigabe. Bei Preisen und Aktionen bekommen Sie eine kurze Risikokarte.
Das Modul erinnert den Chat bei jeder Verbindung und bei jeder Vorschau an diesen Standard. Je höher das Risiko, desto mehr sagt der Chat:
| Risiko | Wann | Was der Chat sagt |
|---|---|---|
| Gering | Beschreibungen, Meta, Alt-Texte, CMS-Seiten, neue Produkte | vorher und nachher, eine Frage, keine Warnungen „für alle Fälle“ |
| Mittel | Seitenadressen und Weiterleitungen, Kategorien und Kategoriezuordnungen; jede Änderung mit Warnungen; eine Änderung mit geringem Risiko an mehr als 20 Elementen | dasselbe plus 1–2 Sätze: was Kunden oder Google sehen und wie man es rückgängig macht |
| Hoch | Verkauf (Preise, Aktionen, Rabattcodes, Bestand, Versand), Theme, Module, Service; eine Änderung mit mittlerem Risiko an mehr als 20 Elementen | eine kurze Risikokarte (bis zu 5 Zeilen): was sich wo ändert, wen es betrifft, worauf zu achten ist, wie man es rückgängig macht, wenn wichtig ein guter Zeitpunkt |
Bei mehr als 20 Elementen zeigt der Chat zuerst 2–3 Beispiele und schlägt einen Test an einem Element vor. Als Freigabe zählt nur ein klares „Ja“ zu einer bestimmten Vorschau; „ok“ ohne Zusammenhang, eine Frage, „vielleicht“ oder keine Antwort sind keine Freigabe. Nach dem Speichern prüft der Chat das Ergebnis, meldet es kurz mit Zahlen (zum Beispiel „28 von 30, 2 übersprungen, weil…“) und sagt, wie man es rückgängig macht.
Bei Änderungen mit geringem Risiko fügt der Chat bewusst keine Warnungen hinzu: Zu viele Warnungen gewöhnen Menschen daran, ohne Lesen „Ja“ zu klicken.
Regeln Ihres Shops für den Chat. In der Karte Einstellungen: Sicherheit, Warnungen, Limits schreiben Sie eigene Regeln, eine pro Zeile, zum Beispiel „Wir duzen unsere Kunden“, „Nie das Wort billig verwenden“, „Beschreibungen bis 600 Zeichen“ (insgesamt bis 1000 Zeichen). Der Chat erhält sie bei jeder Verbindung. Sie schalten nie die Vorschau oder Ihre Freigabe vor dem Speichern aus.
Jede Änderung lässt sich rückgängig machen
- Fragen Sie „Was hast du gestern geändert?“, und der Chat zeigt die Liste. Die Karte Änderungsverlauf im Modul zeigt sie auch.
- Fragen Sie „Mach diese Änderung rückgängig“, und der Chat stellt den früheren Wert wieder her, wieder nach einer Vorschau. Eine ganze Serie machen Sie mit einem Satz rückgängig, auch 40 Produkte auf einmal.
- Neue Produkte, Kategorien und Seiten, die der Chat angelegt hat, werden auf dieselbe Weise entfernt.
- Dateien (Theme, Module, Shop-Dateien): Vor jeder Änderung wird eine Sicherung angelegt, die Sie im Chat oder in der Karte Dateisicherungen wiederherstellen.
- Datenbankänderungen im Bereich Service: Die geänderten Zeilen werden vorher kopiert.
- Seitenadressen: Der Chat ändert die Adresse zurück und prüft, ob die alte weiterleitet.
- Datenbank: Das Modul sichert die ganze Shop-Datenbank, wenn Sie den Konnektor einschalten, vor der ersten Änderung jedes Tages, bevor Theme, Module oder Service eingeschaltet werden, und wenn Sie auf Jetzt sichern klicken. Die letzten 2 Sicherungen werden verschlüsselt aufbewahrt.
Einige Vorgänge macht man auf anderem Weg als über den Änderungsverlauf rückgängig, zum Beispiel die Deinstallation eines Moduls oder eine Änderung der Datenbankstruktur im Service. Der Chat sagt das in der Vorschau, bevor Sie etwas freigeben, und schlägt einen sichereren Weg vor, etwa ein Modul zu deaktivieren statt es zu deinstallieren.
Sie wählen, was der Chat anfassen darf
Das Modul liest sofort den ganzen Shop, außer den festen Sperren. Speichern schalten Sie nach Bereichen in der Karte Speichern nach Bereichen ein:
| Bereich | Was er umfasst | Wie lange er an bleibt |
|---|---|---|
| Inhalte und SEO, Katalog | Beschreibungen, Übersetzungen, SEO, CMS-Seiten, Blog, Produkte, Kategorien, Merkmale, Bilder | immer, mit aktiver Pro-Lizenz |
| Verkauf | Preise, Aktionen, Rabattcodes, Bestand, Varianten, Versand | bis Sie ihn ausschalten |
| Theme | Theme-Dateien, Child-Theme, CSS, Templates, Modulpositionen | 24 Stunden, dann schaltet er sich selbst aus |
| Module | Installation, Updates, Einstellungen und Dateien von Modulen | 24 Stunden, dann schaltet er sich selbst aus |
| Service | technische Arbeiten: Serverdateien, Datenbank, Einstellungen | 3 Stunden, dann schaltet er sich selbst aus |
- Der Schalter wird im Moment der Freigabe geprüft. Läuft er während der Arbeit ab, hält der Chat bei der Vorschau an und sagt, was Sie einschalten müssen.
- Jeden Chat können Sie mit Nur lesen verbinden: Dann sieht er überhaupt keine Werkzeuge zum Speichern.
- Ohne Pro-Lizenz liest das Modul nur und bereitet Pläne vor; es speichert nichts.
- Der Chat arbeitet als eigener Mitarbeiter, nur mit den Rechten, die Sie ihm geben. Das Protokoll des Shops zeigt alles, was er getan hat.
- Stundenlimits: standardmäßig 300 Aufrufe, 150 Speichervorgänge und 20 Dateispeicherungen. Sie ändern sie in der Karte Einstellungen: Sicherheit, Warnungen, Limits. Vor Arbeit an mehr als etwa 20 Elementen prüft der Chat, ob sie in die Limits passt, und schlägt sonst Etappen vor. Eine Serie von Änderungen bricht nie auf halbem Weg ab.
Wer sich mit Ihrem Shop verbinden kann
Der Chat meldet sich mit OAuth 2.1 bei Ihrem Shop an. Die Shop-Adresse für den Chat ist nicht geheim, denn die Adresse allein gibt keinen Zugriff. Ein Chat, der sich verbinden will, öffnet das Fenster Ihres Shops, und Sie klicken auf Erlauben oder Ablehnen und wählen den Zugriff: Lesen und Änderungen mit Ihrer Freigabe oder nur Lesen.
- Standardmäßig können sich nur Claude und ChatGPT verbinden.
- Jeden verbundenen Chat sehen Sie in der Karte Verbundene Chats (wer ihn freigegeben hat, seit wann, wann er zuletzt genutzt wurde) und trennen ihn mit Trennen. Der Chat verliert sofort den Zugriff.
- Bei jeder neuen Verbindung bekommen Sie die E-Mail „Neuer Chat mit Ihrem Shop verbunden“.
- Verbindungen laufen nur über HTTPS.
Klicken Sie nur dann auf Erlauben, wenn Sie gerade selbst einen Chat mit Ihrem Shop verbinden. TellMyShop bittet Sie nie, einen Code per E-Mail, Telefon oder Chat einzugeben.
Die ältere Adresse mit Schlüssel (vor 2.8) funktioniert in aktualisierten Shops weiter, bis Sie sie unter Verbundene Chats → Erweitert: wie Chats sich verbinden ausschalten. Behandeln Sie eine solche Adresse wie ein Passwort. Sobald sich jeder Chat per Anmeldung verbindet, schalten Sie sie aus; dabei wird die alte Adresse gelöscht. Neue Installationen haben sie von Anfang an aus.
Sie erfahren von jeder wichtigen Änderung
- Eine E-Mail bei jedem neu verbundenen Chat und bei jedem erweiterten Zugriff: Verkauf, Theme, Module oder Service eingeschaltet, Zugriff auf Kundendaten an, IP-Listen geleert, Warnungen aus.
- Eine tägliche Zusammenfassung per E-Mail an Tagen, an denen etwas passiert ist: wie oft sich der Chat verbunden hat, was er geändert hat, und eventuelle Warnungen.
- Ein Alarm bei ungewöhnlicher Aktivität: viele Änderungen in kurzer Zeit oder eine Adresse, die nach 20 fehlgeschlagenen Verbindungsversuchen gesperrt wurde.
- Eine Prüfung der eigenen Dateien des Moduls. Ändert oder ergänzt jemand eine Datei im Modul, bekommen Sie einen Alarm.
- Ein Notfallschlüssel. Zeigt der Shop nach einer technischen Änderung eine leere Seite, öffnen Sie die Rettungsadresse, geben den Schlüssel ein, und das Modul holt die geänderten Dateien zurück. Das funktioniert auch, wenn der Shop nicht lädt.
Warnungen gehen an die E-Mail-Adresse des Shops, wenn Sie keine andere eintragen.
Zusätzliche Sicherungen bei Preisen
- Ein Preis kann nicht auf 0 gesetzt werden.
- Eine Preisänderung um mehr als 30 % braucht Ihre zusätzliche Freigabe.
- Ein Rabatt über 90 % braucht Ihre zusätzliche Freigabe; ab 50 % bekommen Sie eine Warnung.
- Neue Rabattcodes starten ausgeschaltet. Sie prüfen sie, bevor Kunden sie nutzen können.
Die Daten Ihrer Kunden
Kundendaten sind für die KI nicht zugänglich und im Änderungsverlauf verschlüsselt. Der Schutz der Kundendaten ist eine eigene Funktion, unabhängig von den Bereichen zum Speichern: Verkauf, Theme oder Module einzuschalten legt keine personenbezogenen Daten offen. TellMyShop hilft Ihnen, die Anforderungen von DSGVO, UK GDPR, CCPA/CPRA und LGPD zu erfüllen.
In der Karte Kundendaten (DSGVO) wählen Sie eine von drei Stufen:
- Nicht zugänglich (nach der Installation). Der Chat sieht keine Kunden, Adressen oder Nachrichten. Verkaufsberichte zeigen Produkte und Beträge, ohne Namen.
- Pseudonymisiert. Der Chat sieht Bestellungen, Nachrichten und Statistiken, aber Namen sind auf Initialen gekürzt, und E-Mails, Telefonnummern und Adressen sind durch einen Alias wie „Klient-3f9a1c“ ersetzt. Der Chat kann sagen „dieser Kunde hat dreimal bestellt“, ohne zu wissen, wer es ist. Kundendaten ändern kann er nicht.
- Voller Zugriff (befristet). Für 1, 4, 8 oder 24 Stunden, mit einem Zweck, den Sie selbst eintragen, zum Beispiel „Reklamation zu Bestellung 1234“. Danach kehrt der Zugriff von selbst zur vorherigen Stufe zurück, und Sie bekommen eine E-Mail.
So funktioniert es:
- Das Modul findet personenbezogene Daten selbst, auch in Tabellen von Modulen anderer Anbieter (Bewertungen, Newsletter, Treueprogramme). Die Karte Kundendaten (DSGVO) zeigt, wie viele Tabellen es gefunden hat.
- Verschlüsselung. Einträge im Änderungsverlauf mit Kundendaten und alle Dateisicherungen sind verschlüsselt (libsodium), und der Schlüssel liegt in einer Datei außerhalb der Datenbank. Ein Abfluss der Datenbank allein legt diese Einträge nicht offen.
- Immer gesperrte Dateien: Dateien mit Passwörtern und Schlüsseln, Kundendateien (
upload/,download/), Serverlogs, Datenbankabzüge und Sicherungen,.gitund die eigenen Dateien des Moduls. In Logs und Nachrichten sind E-Mails, Telefonnummern und IP-Adressen maskiert. - Audit-Protokoll: wer wann vollen Datenzugriff, Service und die Lizenz eingeschaltet hat. Es lässt sich im Panel nicht leeren; Sie laden es als CSV herunter.
- Das DSGVO-Modul von PrestaShop (psgdpr): Löschen oder Exportieren der Daten eines Kunden umfasst auch den Verlauf von TellMyShop.
- Texte für die Dokumente Ihres Shops: Das Modul schlägt einen Abschnitt für die Datenschutzerklärung und einen Eintrag für das Verarbeitungsverzeichnis vor.
Ihr Shop bleibt Verantwortlicher für die Daten seiner Kunden. Die Aufteilung der Pflichten steht im Auftragsverarbeitungsvertrag.
Wohin Ihre Daten gehen
- Das Modul läuft auf Ihrem eigenen Server. Der Chat verbindet sich direkt damit, ohne Vermittler.
- Wenn der Chat etwas liest, geht es aus Ihrem Shop zu Ihrem Konto bei Claude oder ChatGPT. Für Gespräche gelten die Bedingungen des Chat-Anbieters; TellMyShop sieht sie nicht und trainiert keine Modelle damit.
- Der Server von TellMyShop bekommt Ihre Produkte, Bestellungen oder Kunden nicht. Die Lizenzprüfung sendet nur Ihren Lizenzschlüssel, die Shop-Domain, eine zufällige Installations-ID und Versionsnummern (Modul, PrestaShop, PHP). Im Panel können Sie selbst Startstatistiken einschalten: nur Zahlen, keine Shop-Inhalte und keine Kundendaten.
Text in Ihrem Shop ist keine Anweisung
Eine Produktbeschreibung, ein Kommentar oder eine Kundennachricht kann Text enthalten, der wie ein Befehl für die KI aussieht. TellMyShop hat dafür mehrere Schutzmaßnahmen zugleich: Der Chat ist angewiesen, Shop-Inhalte als Text zu behandeln, und Ergebnisse mit Shop-Inhalten tragen dieselbe Erinnerung. Passwörter, Zahlungen und Steuern sind dauerhaft gesperrt, riskante Bereiche schalten nur Sie ein, und jede Änderung wartet auf eine Vorschau und Ihr „Ja“.
Sicherheitsprüfung
Im Oktober 2026 wurde Version 2.8 der Module und der Website von TellMyShop Punkt für Punkt auf Sicherheit geprüft, mit automatischen Tests und Tests in einem Shop mit PrestaShop 8.1. Die Korrekturen aus der Prüfung sind in Version 2.8.1.
| Standard | Was er prüft | Ergebnis |
|---|---|---|
| OWASP ASVS 5.0, Stufen 1–2 | der allgemeine Standard für Anwendungssicherheit: Kodierung von Daten, Validierung, Dateien, Anmeldung, Sitzungen, Rechte, Kryptografie, Kommunikation, Protokolle | alle Kapitel geprüft; keine Lücke, durch die ein Fremder in einen Shop oder ein Kundenkonto gelangen könnte |
| OWASP Top 10 für LLM-Anwendungen (2025) | Risiken speziell für KI: versteckte Anweisungen in Inhalten, Datenabfluss, übermäßige Handlungsfreiheit, unbegrenzter Verbrauch | Vorschau und Freigabe für jedes Speichern, feste Sperren, befristete Schalter, Limits |
| OAuth 2.1, RFC 9700, MCP-Autorisierungsspezifikation | sichere Anmeldung des Chats | 44 von 44 Anmeldetests bestanden |
| CWE Top 25 (2025) | die 25 gefährlichsten Arten von Schwachstellen im Code: SQL-Injection, XSS, CSRF, Path Traversal, SSRF und mehr | Schutzmaßnahmen in allen Punkten, die PHP und TypeScript betreffen |
Offizieller Modul-Validator von PrestaShop: keine Anmerkungen in den Bereichen Sicherheit, Lizenzen, Struktur, Übersetzungen und Optimierung (Version 2.8.1). Das WordPress-Plugin ist nach den WordPress-Richtlinien für Plugins gebaut.
Eine Schwachstelle gefunden? Schreiben Sie an [email protected], bevor Sie Details veröffentlichen.
Technische Details
Chat-Anmeldung (OAuth 2.1). Das Modul ist für den Chat Autorisierungsserver und Ressourcenserver. Nur Authorization Code mit verpflichtendem PKCE (S256); kein Implicit Flow und kein Password Grant. Exakter Abgleich der Redirect-URI (Ausnahme nur für den Loopback-Port, RFC 8252). Einmal-Codes; erneute Nutzung widerruft die Verbindung. Rotation des Refresh-Tokens mit Erkennung erneuter Nutzung. Opake Tokens, nur im Header Authorization, gespeichert nur als SHA-256-Hash. Bindung an den Empfänger (RFC 8707 resource), iss in der Antwort (RFC 9207), Metadaten des Autorisierungsservers (RFC 8414) und der geschützten Ressource (RFC 9728), WWW-Authenticate bei 401, Client-Registrierung (CIMD und RFC 7591) mit Limits, Widerruf (RFC 7009). Zustimmungsfenster: CSRF-Token (HMAC) und Cookie __Host-, frame-ancestors 'none', X-Frame-Options: DENY. Zustimmung: Inhaber im selben Browser im Backoffice angemeldet oder ein Code aus dem Chat-Fenster, 15 Minuten gültig, eingegeben in der Karte Verbundene Chats. Der Scope shop.read blendet Werkzeuge zum Speichern aus. Die Anmeldung braucht ein Hosting, das den Header Authorization weitergibt; der Verbindungstest im Panel prüft das.
Adresse mit Schlüssel (ältere Methode). Ein statisches Token in der URL (?token=) oder im Header Authorization: Bearer, eingeschaltet unter Verbundene Chats → Erweitert; in neuen Installationen aus. Gespeichert werden nur der SHA-256-Hash und ein Präfix; das volle Token wird einmal angezeigt; ein neues Token widerruft das alte sofort. Nutzen Sie den Header, wo der Client ihn unterstützt.
Schutzmaßnahmen des Endpoints (src/Endpoint.php, in dieser Reihenfolge):
| # | Schutz | Wert |
|---|---|---|
| 1 | Modulschalter | Nach der Installation aus, bis der Inhaber ihn einschaltet (503) |
| 2 | Transport | Nur HTTPS (403) |
| 3 | IP-Sperre | 20 fehlgeschlagene Anmeldungen von einer IP in 10 Minuten; Alarm an den Inhaber (429) |
| 4 | IP-Allowlist | Optional; leer = keine Einschränkung |
| 5 | Origin | Eine Anfrage mit Header Origin muss von https://claude.ai, https://claude.com, https://chatgpt.com oder https://chat.openai.com kommen (andere = 403); Server-zu-Server-Clients ohne Origin gehen weiter zur Anmeldung |
| 6 | Anmeldung | OAuth-Access-Token oder das Token der Adresse mit Schlüssel |
| 7 | Limits | Stundenlimits für Aufrufe, Speichervorgänge und Dateispeicherungen aus dem Panel. Eine Serie von bis zu 50 Elementen zählt als ein Speichervorgang; das Limit wird vor dem Speichern geprüft. Verbleibende Limits stehen in jeder Vorschau und jedem Ergebnis; ps_check_capacity prüft eine geplante Aufgabe |
| 8 | Bereiche | Lizenz, Umfang der Verbindung und Bereichsschalter werden bei jedem Aufruf und im Moment der Freigabe geprüft |
| 9 | Rechte | Pro Backoffice-Tab und Aktion des Konnektor-Mitarbeiters (ExecutionContext::requirePermissions); SuperAdmin abgelehnt |
Client-IP: Proxy-Header (CF-Connecting-IP, X-Forwarded-For) werden nur genutzt, wenn „Shop hinter Proxy / Cloudflare“ eingeschaltet ist und die direkte Gegenstelle auf der Liste vertrauenswürdiger Proxys steht.
Schreibvorgänge. change_token = HMAC aus Werkzeug, Argumenten und einem Hash des Zustands „vorher“; 30 Minuten, einmalig; die Ausführung wird blockiert, wenn sich die Daten nach der Vorschau geändert haben. Gespeichert wird über ObjectModel (ObjectWriter): Validierung pro Feld, nur geänderte Felder, Hooks actionObject…Update*, Eintrag im PrestaShop-Protokoll mit der ID des Konnektor-Mitarbeiters, Änderungsverlauf mit jeder geänderten Zeile, auch Zeilen, die andere Module nebenbei geändert haben. Details: Spezifikation §5.
Dateien. Theme: Smarty-Whitelist und Testkompilierung (SmartyGuard), JSON-Prüfung, Warnungen bei neuen Skripten und externen Domains, Eltern-Theme nur lesbar. Module und Shop-Dateien (Files\Zone): nur relative Pfade, realpath() innerhalb der Zone, nur Textendungen; ZIP-Pakete von Modulen werden vor dem Entpacken geprüft (Zip-Slip). Immer verweigert: app/config/parameters.*, config/settings*.inc.php, .env*, *.key|pem|p12|crt|sql|sql.gz|dump|bak, .git, .svn, var/logs, upload, download, das private Verzeichnis des Moduls und das Modul selbst. PHP-Dateien: Syntaxprüfung mit token_get_all(TOKEN_PARSE) vor dem Schreiben; kein Werkzeug zum Ausführen von Code. Vor jedem Schreiben eine Sicherung; Sicherungen 90 Tage, mindestens die letzten 5 pro Datei. Abruf von Bildern und Paketen: nur öffentliche IPs, an die Verbindung gebunden, keine Weiterleitungen ins interne Netz (SSRF).
SQL (Bereich Service). ps_db_query (Pro): SELECT/SHOW/DESCRIBE/EXPLAIN in einer READ-ONLY-Transaktion, max. 200 Zeilen, E-Mails und Telefonnummern maskiert. ps_db_execute (Schalter Service, 3 Std.): eine Anweisung, keine Kommentare (SqlGuard); UPDATE/DELETE auf einer Tabelle sichern passende Zeilen vorher (max. 1000) und werden zurückgerollt, wenn sich mehr Zeilen ändern als angegeben; INSERT wird durch Löschen der Zeile rückgängig gemacht; Strukturänderungen werden in der Vorschau markiert. Immer gesperrt: Mitarbeiter, Sitzungen, Profile und Zugriffe, configuration (über ps_config, Geheimnisse maskiert), Webservice und API-Clients, Tabellen des Konnektors. Tabellen mit personenbezogenen Daten nur bei Kundendaten-Stufe pseudo (maskiert) oder full. Service ist voller technischer Zugriff, deshalb läuft er 3 Stunden, braucht eine erfolgreiche Datenbanksicherung und steht im Audit-Protokoll.
Kundendaten (src/Privacy/PersonalData.php). Stufen off / pseudo / full (CUSTOMER_DATA); full nur für 1/4/8/24 Std. mit angegebenem Zweck und ausdrücklicher Bestätigung, danach zurück zur vorherigen Stufe. Erkennung: feste Liste von Tabellen aus PrestaShop und verbreiteten Modulen (customer, address, orders, cart, messages, newsletter, psgdpr…) plus jede Tabelle mit einer Spalte, deren Name zu Mustern für E-Mail, Vor-/Nachname, Telefon, Adresse, PLZ, IP, Geburtsdatum, Steuernummer oder Geheimnisse passt, gelesen aus information_schema; Geschäftstabellen (contact, store, supplier, manufacturer, warehouse, carrier) ausgenommen. Maskierung auf Stufe pseudo: E-Mail, Telefon, Adresse und Ausweisnummern → Alias Klient- + 6 Hex-Zeichen (HMAC-SHA256 mit einem Tagesschlüssel aus var/tellmyshop/keys/pseudonym.key); Name → Initialen plus Alias; IPv4 → erste zwei Oktette, IPv6 ausgeblendet; Geburtsdatum → Jahr; Geheimnisse → ***. Freitext (Logs, Nachrichten, Dateien): E-Mails gekürzt zu j***@g***.com, Telefonnummern, IPs, Tokens und Header Authorization maskiert. ps_list_changes maskiert Kundendaten in jedem Eintrag, unabhängig von CUSTOMER_DATA.
Datenbanksicherungen (src/Storage/DbBackup.php). Vollständiger SQL-Dump, gzip, verschlüsselt, in var/tellmyshop/db-backups/; erstellt beim Einschalten des Konnektors, vor der ersten freigegebenen Änderung des Tages, vor Theme, Module oder Service und mit Jetzt sichern; die letzten 2 bleiben; gelöscht beim Ausschalten des Konnektors und bei der Deinstallation. Kein transaktionaler Schnappschuss. Behalten Sie auch Ihre eigenen Server-Backups.
Verschlüsselung (src/Security/Crypto.php). libsodium secretbox (XSalsa20-Poly1305), ein zufälliger 32-Byte-Schlüssel in var/tellmyshop/keys/history.key, außerhalb der Datenbank. Verschlüsselt: Änderungsverlauf von Objekten mit Kundendaten, alle Dateisicherungen und Datenbanksicherungen. Sichern Sie die Schlüsseldatei zusammen mit der Serversicherung und bewahren Sie die Kopie getrennt auf: Ohne den Schlüssel lassen sich verschlüsselte Änderungen nicht rückgängig machen.
psgdpr. Hooks actionDeleteGDPRCustomer (löscht die Daten des Kunden aus dem verschlüsselten Verlauf) und actionExportGDPRData (listet Vorgänge des Konnektors auf, die den Kunden betrafen, ohne Werte).
Alarme an den Inhaber (src/Security/Alerts.php). E-Mail und Protokolleintrag mit Status ALERT bei: neu verbundenem Chat, Kundendaten pseudo/full, eingeschaltetem Bereich Verkauf, Theme, Module oder Service, geleerten IP-Listen, ausgeschalteten Warnungen, vielen Schreibvorgängen (20 in 10 Minuten), IP-Sperre, Verletzung der Integrität der Moduldateien. Dasselbe Ereignis höchstens einmal pro 15 Minuten (Ereignisse aus dem Panel immer). Tägliche Zusammenfassung einmal pro 24 Std. Integrität (src/Security/Integrity.php): SHA-256 jeder Datei im Abgleich mit der Festplatte; geänderte, gelöschte und hinzugefügte PHP-Dateien werden aufgelistet; geprüft bei jedem Besuch im Panel und höchstens alle 6 Std. durch den Konnektor.
Notfallschlüssel (src/Security/RescueKey.php). Einmal angezeigt; gespeichert wird nur sein SHA-256. Ein Skript wird unter zufälligem Namen ins Shop-Hauptverzeichnis kopiert, weil PrestaShop direkte PHP-Aufrufe in modules/ blockiert. Es stellt vom Konnektor geänderte Dateien wieder her und schaltet Service aus; Datenbankänderungen werden aus dem Änderungsverlauf oder einer Datenbanksicherung wiederhergestellt. Wird bei der Deinstallation entfernt.
Aufbewahrung. Verbindungsprotokoll 30 Tage (7–180); Änderungsverlauf 180 Tage (30–730); Dateisicherungen 90 Tage, mindestens 5 pro Datei; Datenbanksicherungen: die letzten 2.
Nicht nötig: PrestaShop Account, Eventbus. Ausgehende Verbindungen: der Lizenzserver (https://tellmyshop.com/api/v1), die eigenen Seiten des Shops (HttpProbe, URL-Prüfungen), ZIP-Adressen von Modulen und Bild-URLs, die der Chat auf Wunsch des Inhabers übergibt.
Checkliste für die IT
- Eigener inaktiver Mitarbeiter und eigenes Profil, nicht SuperAdmin (das erledigt die Schaltfläche für das Konnektor-Konto im Panel).
- Liste Verbundene Chats geprüft, unbekannte Chats getrennt; Chats, die nicht speichern müssen, mit „Nur lesen“ verbunden.
- Adresse mit Schlüssel ausgeschaltet, wenn nicht nötig.
- Verkauf, Theme, Module und Service nur für die Dauer der Arbeit eingeschaltet; Notfallschlüssel erzeugt und außerhalb des Shops aufbewahrt.
- Kundendaten auf „Nicht zugänglich“, außer eine Aufgabe braucht sie; voller Zugriff nur mit angegebenem Zweck.
- IP-Allowlists geprüft; Proxy-Einstellung korrekt, wenn der Shop hinter Cloudflare liegt.
- E-Mail-Adresse für Warnungen geprüft.
- Datei mit dem Verschlüsselungsschlüssel zusammen mit der Serversicherung gesichert.
-
ps_check_shop_healthvor größeren Änderungen ausgeführt.
PrestaShop ist eine eingetragene Marke der PrestaShop SA. Claude ist eine Marke von Anthropic. ChatGPT ist eine Marke von OpenAI. TellMyShop ist mit keinem von ihnen verbunden.
Zuletzt aktualisiert: 2026-10-04