Übersicht
KI-Modelle · Status & Test
Zuletzt ausgestellte Zertifikate
Alle ansehen →Offene Aktionen
Lead-Engine
Jahresziel 2026 · 100.000 EUR
Funnel (30 Tage)
MRR nach Plan
Content-Pipeline
Outbound-Pipeline
Weekly-Report
Lead-Inbox
Kunden
| Kunde | Aktiver Plan | Customer-Link | Letzter Login | Registriert | Aktionen |
|---|---|---|---|---|---|
Lade Kunden … | |||||
Demo-Zugänge
Konten in der Demo
| Konto | Zugang bis | Stand | Zuletzt in der Demo | Nächster Schritt |
|---|---|---|---|---|
Lade Demo-Zugänge … | ||||
Team & Admins
Hinweis
Diese Sektion zeigt nur interne Mitarbeiter mit erweiterten Rechten. Team = darf alle Admin-Bereiche sehen + Stammdaten editieren. Admin = zusätzlich Rollen aendern, Buchungen loeschen, Lizenzen widerrufen. Rollen-Aenderungen sind nur Admins erlaubt.
| Mitglied | Rolle | Aktiver Plan | Letzter Login | Mitglied seit | Aktionen |
|---|---|---|---|---|---|
Lade Team … | |||||
Buchungen & Rechnungen
| Buchung | User | Plan | Status | Zahlung | Betrag | Datum | Aktionen |
|---|---|---|---|---|---|---|---|
Lade Buchungen … | |||||||
Eventtage
| Event | Datum | Ort | Anmeldungen | Status | Aktionen |
|---|---|---|---|---|---|
Lade Events … | |||||
Partner
Pflege deine Partner direkt hier. Lade ein Logo hoch (PNG/JPG/SVG/WEBP, max 2 MB) und gib Name, Kategorie und optional eine Website-URL an.
Veröffentlichte Partner erscheinen auf /partner.html. Reihenfolge per sort_order (kleiner = weiter oben).
Tipp: Neue Uploads werden automatisch beschnitten + auf max 640 px skaliert. Für alle bestehenden Logos einmalig "Logos normalisieren" oben drueken.
| Logo | Name | Kategorie | Website | Sort | Status | SnowChat | Aktionen |
|---|---|---|---|---|---|---|---|
Lade Partner … | |||||||
SnowChat Free
Datensparsame Nutzungsanalyse der Gratis-App. Eine Installation = ein anonymer Zufalls-Schlüssel (kein Hardware-Fingerprint, keine IP, keine Inhalte). Namen erscheinen nur, wenn sich ein Nutzer freiwillig mit seinem Snowbyte-Konto in der App anmeldet.
| Schlüssel | Konto (nur bei Login) | Version | Region | Pings | Zuletzt aktiv |
|---|---|---|---|---|---|
Lade … | |||||
Newsletter
Top-of-Funnel E-Mail-Liste (Footer-Anmeldung, SnowChat Free u. a.). Single-Opt-In: jede Anmeldung ist sofort aktiv und jederzeit über den Abmelde-Link in jeder Mail abbestellbar. Die IP wird nur zur Missbrauchsabwehr gespeichert.
| Status | Quelle | Angemeldet | Aktionen | |
|---|---|---|---|---|
Lade … | ||||
Team-Mitglieder
Pflege das Snowbyte-Team direkt hier. Lade ein Foto hoch (PNG/JPG/WEBP, max 5 MB) und gib Name, Position und ein persönliches Zitat an.
Veröffentlichte Mitglieder erscheinen auf /über-uns.html im Team-Bereich. Reihenfolge per sort_order.
| Foto | Name | Position | Zitat | Sort | Status | Aktionen |
|---|---|---|---|---|---|---|
Lade Team … | ||||||
Produkt-Medien
Lade Showcase-Bilder oder -Videos pro Produkt hoch. Sie erscheinen auf der jeweiligen Produkt-Seite unten unter den Use-Case-Kacheln. Bilder: PNG/JPG/WEBP, max 5 MB. Videos: MP4/WEBM, max 50 MB. Reihenfolge per sort_order.
| Vorschau | Produkt | Typ | Caption | Sort | Status | Aktionen |
|---|---|---|---|---|---|---|
Lade Medien … | ||||||
Banner-Hintergrundbilder
Tausche die Hintergrundbilder der Marketing-Banner selbst. JPG/PNG/WEBP (max 12 MB) — wird serverseitig auf max. 1920 px optimiert. Die Änderung ist sofort live. „Zurücksetzen" stellt das Standardbild wieder her. Deine Uploads überstehen künftige Website-Updates.
Pilotierung — Maschinenbau
Tausche und platziere die Bilder auf der Seite Pilotierung → Maschinenbau selbst. JPG/PNG/WEBP (max 12 MB), serverseitig optimiert. Sofort live. Ohne eigenes Bild zeigt die Seite oben die Snowbyte-Grafik und in der Mitte eine echte SnowTickets-Ansicht. Ein eigenes Foto legt sich darüber und bekommt die Unterzeile „Foto aus dem Pilotprojekt“ — lade deshalb nur Fotos hoch, an denen ihr die Rechte habt und auf denen niemand ohne Einwilligung erkennbar ist. „Zurücksetzen" zeigt wieder den Standard. Uploads überstehen künftige Website-Updates.
Über uns — Community-Foto
Das Gruppenfoto unter den Team-Mitgliedern auf Über uns. JPG/PNG/WEBP (max 12 MB), serverseitig optimiert. Sofort live. „Zurücksetzen" stellt das Standardbild wieder her. Uploads überstehen künftige Website-Updates.
Alle Medien auf dem Webspace
Übersicht aller Bilddateien, die aktuell auf dem Server liegen (img/, uploads/, assets/, images/). Klick auf ein Bild kopiert seinen Pfad. Neueste zuerst.
Verifikationen — Snow-Pass Antraege
Hier siehst du Anträge von Schüler:innen, Studierenden und Azubis für den kostenlosen Snow-Pass. Klick auf einen Eintrag, um das hochgeladene Dokument zu sehen, dann genehmigen oder ablehnen. Bei Genehmigung wird der User automatisch in den Pass eingeschrieben (12 Monate gültig).
| Datum | User | Typ | Institution | Dokument | Status | Aktion |
|---|---|---|---|---|---|---|
Lade Verifikationen … | ||||||
Karriere — Stellenausschreibungen
Lege hier Stellenausschreibungen an. Status "Veröffentlicht" → auf karriere.html sichtbar. Bewerbungen kommen via Mail an die hinterlegte Adresse oder via externes Formular-URL.
| Titel | Department | Typ | Ort | Status | Featured | Aktion |
|---|---|---|---|---|---|---|
Lade Stellen … | ||||||
Seiten-Editor
Diesen Editor gibt es nicht mehr. Seiten werden jetzt direkt auf der Website bearbeitet: Seite aufrufen, unten rechts das Stift-Symbol wählen, Text anklicken, speichern — die Änderung steht sofort im Quellcode der Seite (wichtig für SEO). Der alte Weg hat Inhalte per JavaScript über die Seite gelegt und dabei gepflegte Stände überdeckt (BUG-027).
Nutzung vs. Abo
Wozu diese Seite? (in einem Satz)
Manche Kunden nutzen die Software weiter, obwohl sie nicht (mehr) genug dafür zahlen. Diese Seite legt beides nebeneinander — wer gerade nutzt (Gerät, Version, zuletzt online) und wer was zahlt — und kann den Unterschied automatisch geradeziehen: eine Lizenz auf den Plan herunterstufen, der wirklich bezahlt wird.
Dein Nutzen: Du erkennst auf einen Blick zahlungssäumige Nutzer und geteilte Lizenzen — und musst niemandem mehr von Hand hinterherlaufen oder Pläne manuell zurücksetzen.
Durchsetzung scharfschalten
Was „Jetzt anwenden" konkret tut: Es setzt jede Lizenz, die einen höheren Plan hat als ihr Abo hergibt, auf den bezahlten Plan zurück.
Beispiel: Ein Kunde hat MAX, zahlt aber nur noch für START → seine Lizenz wird auf START gesetzt.
Sicher gebaut: nie unter START, nie kostenlose oder Lifetime-Lizenzen, und erst nach 14 Tagen Kulanz. Alles jederzeit umkehrbar.
Ablauf: 1. Oben „Durchsetzung prüfen" — sieh die Liste, die abgestuft würde (ändert nichts). 2. Stimmt sie? Schalter freigeben. 3. „Jetzt anwenden".
Die fünf Zahlen oben — einfach erklärt
- Alarm — nutzt die Software aktiv, zahlt aber nicht (genug). Das sind die Kandidaten fürs Abstufen.
- Geteilt — ein Lizenzschlüssel läuft auf mehr Geräten als erlaubt. Hinweis auf eine geteilte oder geknackte Lizenz.
- In Ordnung — Nutzung und Abo passen zusammen. Alles gut.
- Ohne Lizenz — eine Installation, der (noch) keine Lizenz zugeordnet ist.
- Gesamt — alle Installationen, die sich überhaupt gemeldet haben.
Ehrliche Grenze: Wer den „Nach-Hause-Funk" (Heartbeat) aus der Software herauspatcht, meldet sich nicht und taucht hier nicht auf — erkennbar an sehr hoher „offline seit" bei längst abgelaufenem Abo. Diese Seite zeigt jede unveränderte Installation.
| Gerät | Kunde | Version | Status | Lizenz-Plan | Anspruch | Lage | Lizenzschlüssel |
|---|---|---|---|---|---|---|---|
Lädt… | |||||||
Releases & Rollout
Wozu diese Seite? (in einem Satz)
Updates gezielt ausspielen: Ein Ring ist ein benannter Update-Kanal (z. B. stable, pilot-maschinenbau, hold). Du legst je Maschine oder je Lizenz fest, welchen Ring sie bekommt — und veröffentlichst ein Release zuerst nur in den Pilot-Ring. Unten siehst du, welche Version wo läuft und was wem wann angeboten wurde.
Ablauf: Paket + Manifest per FTP nach api/_releases/ laden (Owner-Werkzeug paket-bauen.js) → hier „in Ring veröffentlichen" → Maschinen dem Ring zuweisen. hold friert eine Maschine ein. Ohne Zuweisung gilt der Ring der Lizenz, sonst stable.
Ringe & aktuelle Freigabe
Hochgeladene Pakete → in Ring veröffentlichen
Neuer Ring-Name = neuer Ring. Erst Pilot, dann dasselbe Manifest in stable — so wandert ein Release durch die Ringe.
Release-Register (Integritäts-Freigaben)
Je Release den Manifest-Hash aus node backend/tools/integritaet-erzeugen.js eintragen (letzter Schritt vor dem Ausliefern).
Meldet eine Installation „unverändert" mit einem Hash, der hier nicht steht, wertet der Server das als unbekanntes Manifest und meldet es in den Ops-Discord-Kanal.
Solange das Register leer ist, urteilt der Server nicht — es kann also nichts fälschlich anschlagen.
| Version | Manifest-Hash | Notiz | Eingetragen | |
|---|---|---|---|---|
Lädt… | ||||
Standard-Ring je Lizenz (Kunde)
| Kunde | Lizenz | Plan | Ring (leer = stable) |
|---|---|---|---|
Lädt… | |||
Maschinen: Ring · läuft · angeboten
| Kunde | Maschine | Ring (Maschine) | Effektiv | Läuft | Angeboten | Integrität | Zuletzt gesehen |
|---|---|---|---|---|---|---|---|
Lädt… | |||||||
Snow-Systeme
Wie funktioniert das?
Auf jedem Snow-System läuft der Snow Heartbeat Agent (Node.js, single-file, kein npm). Er meldet sich automatisch alle 60s an snowbyte.de und holt Admin-Befehle ab. Bei Erst-Heartbeat wird ein auth_token ausgegeben — danach sind alle Heartbeats authentifiziert.
Agent-Code: /snow-agent/heartbeat.js ·
Doku: /snow-agent/README.md ·
Debug pro Device: Klick auf in der Tabelle = Heartbeat-Log (auch fehlgeschlagene Versuche).
Wichtig: Lizenzen brauchen IMMER eine Kunden-Email. Ohne Email kann das Snow-System sich nicht registrieren — der PC taucht hier nie auf, obwohl der Agent läuft. Fehlende Email nachtraeglich setzen unter Kunden.
| Status | Gerät | Lizenz | Besitzer | HW | SW-Version | Letzter Heartbeat | Aktion |
|---|---|---|---|---|---|---|---|
Lade Snow-Systeme … | |||||||
Academy-Abos
Was steht hier?
Vier Tiers: Privat (14 €/Monat) · Business (44 €/Monat, bis 5 Seats) · Free · Verifiziert (Schueler/Studi/Azubi mit Verifikation, 12 Monate gratis) · Free · Basis (Snowbyte-Account ohne Buchung, kann freie Articles lesen).
Aktionen wie „Bezahlt markieren" oder „Stornieren" wirken auf die selbe subscriptions-Tabelle wie Snow-Buchungen — Kunden sehen die Aenderung sofort im Dashboard. Bei Free-Tiers entfaellt „Bezahlt markieren" (sind bereits paid 0 €). Quelle: /api/admin/academy-subscriptions.php.
| Status | Tier | Kunde | Seats | Abrechnung | Betrag | Rechnung | Läuft ab | Aktion |
|---|---|---|---|---|---|---|---|---|
Lade Academy-Abos … | ||||||||
Zertifikate
Alle ausgestellten Snowbyte-Academy-Zertifikate. Manuelle Ausstellungen sind mit einer Krone markiert.
| Datum | Code | User | Pfad | Typ | Aktion |
|---|---|---|---|---|---|
Lade Zertifikate … | |||||
Dateien
Dateien hierher ziehen oder klicken
Bilder, PDF, Fonts, Video · max. 25 MB · landen unter /uploads/media/
Hochgeladene Dateien unter /uploads/ plus die Marken- & Presse-Assets aus /assets/ (Logos, Wallpapers, Presse — als schreibgeschützt markiert). Mit kopierst du die öffentliche URL jeder Datei zum Weiterverwenden. Verwaiste Dateien (nicht mehr in der DB referenziert) kannst du gefahrlos löschen; Marken-/Presse-Assets lassen sich hier nicht löschen.
| Vorschau | Pfad / Name | Typ | Größe | Geändert | Verwendung | Aktionen |
|---|---|---|---|---|---|---|
Lade Dateien … | ||||||
Web-Statistik
Visits letzte 14 Tage
Top-Seiten (7 Tage)
| Pfad | Visits |
|---|---|
Lade … | |
Webseiten-Monitor
Trägt Webseiten ein, die täglich auf Verfügbarkeit, Antwortzeit, SSL-Restlaufzeit und CMS-Version (WordPress, Joomla, Drupal, TYPO3, Shopware, Shopify, …) geprüft werden. Bei Statuswechsel (UP ↔ DOWN) geht optional ein Webhook an Slack/Discord.
| Status | Webseite | Kunde | CMS | Latenz | SSL bis | Zuletzt geprüft | Aktionen |
|---|---|---|---|---|---|---|---|
Lade … | |||||||
Automatisch nur mit einem Plesk-Auftrag (Typ Befehl ausführen, Benachrichtigen: nur bei Fehlern):
curl -fsS -H "X-Cron-Token: …" "https://snowbyte.de/api/admin/site-monitor-cron.php" (gleicher Token wie Auto-Blog, nur als Kopfzeile).
Empfehlung: einmal täglich 06:00 UTC.
Webseite
Site-Details
Formular-Log
Jede ausgefuellte Form auf der Webseite landet hier — Konfigurator, Kontakt, Termin-Anfragen, Registrierungen, Buchungen, Verifikations-Uploads, Kuendigungen, Event-Anmeldungen, Passwort-Resets.
| Zeit | Typ | Name | Zusammenfassung | Status | ||
|---|---|---|---|---|---|---|
Lade … | ||||||
SEO-Checks
Kostenloses SEO-Check-Tool für angemeldete User. Free = 1 Check pro 7 Tage, Pro = 100 pro 30 Tage. Counter zaehlt nur erfolgreiche Runs. Free-History wird automatisch auf die letzten 3 Runs reduziert.
| Zeit | User | Domain | Score | HTTP | Status | Dauer | Aktionen |
|---|---|---|---|---|---|---|---|
Lade … | |||||||
Kunden-Finder Suchen
Kostenloser Kunden-Finder für angemeldete User. Free = 3 Suchen pro 30 Tage, Pro/MAX = 30 pro 30 Tage. Counter zaehlt nur erfolgreiche Runs.
Soft-Delete: Loeschen verbirgt die Suche nur für den User — die DB-Zeile bleibt erhalten, damit das Quota-Counter nicht manipuliert werden kann. Geloeschte Suchen kannst du jederzeit wiederherstellen.
| Zeit | User | Segment / Custom | Stadt | Treffer | Status | Dauer | Aktionen |
|---|---|---|---|---|---|---|---|
Lade … | |||||||
Quiz-Versuche & Lösungen
Jeder Zertifizierungs-Quiz-Versuch (bestanden + nicht bestanden) wird hier gespeichert — mit den vom User gewaehlten Antworten plus den korrekten Lösungen. So kannst du simulieren, was der User gesehen hat, und Quiz-Schwachstellen identifizieren.
| Zeit | User | Artikel | Score | % | Status | |
|---|---|---|---|---|---|---|
Lade … | ||||||
Speicherplatz
Wohin der Platz geht
Die groessten Einzeldateien
Mail-Diagnose
Wenn Mails nicht ankommen
- Spam-Ordner prüfen — bei neuen Sender-Domains häufig der erste Grund.
- Test-Mail an dich selbst senden (unten). Klappt das, ist Server-Versand OK.
- SPF-Record bei netcup setzen: TXT-Record für
snowbyte.demitv=spf1 mx a include:netcup.net ~alloder netcup-spezifisch. - DKIM aktivieren im netcup Customer Control Panel (CCP) → Mail-Einstellungen.
- Echte Mailbox für
noreply@snowbyte.deeinrichten — manche Provider weisen Mails ab, wenn der Absender keine empfangsfaehige Mailbox hat.
Test-Mail senden
Sendet eine Test-Mail. Im Resultat siehst du ob mail() auf dem Server true oder false zurueckgegeben hat.
Letzte 50 Versandversuche
| Zeit | Kategorie | Empfaenger | Betreff | Status | Grund |
|---|---|---|---|---|---|
Lade … | |||||
SnowMind Light
Typische Inhalte: Neueste Produkt-Updates, häufige FAQ-Antworten, aktuelle Aktionen, Sprach-/Tonalitäts-Vorgaben, "Wenn jemand X fragt, antworte Y"-Regeln, frische Pricing-Hinweise, neue Partner.
Format: Plain-Text oder Markdown. Maximal 30 KB (~ 6.000 Wörter). Wirkt sofort nach dem Speichern — kein Deploy nötig.
admin_actions protokolliert. Nur Team/Admin können editieren.
| Status | Label · URL | Inhalt | Zuletzt geprüft | Aktionen |
|---|---|---|---|---|
| Wird geladen… | ||||
Auto-Refresh per Cron einrichten
curl -fsS -X POST -H "X-Cron-Token: DEIN_TOKEN" "https://snowbyte.de/api/admin/agent-knowledge-urls-refresh.php?cron=1"Derselbe Token wie beim Auto-Blog (
agent.url_cron_token), nur als Kopfzeile — in der Adresse wird er nicht angenommen. Ohne Cron: einfach „Alle aktualisieren" klicken, wenn du frische Daten willst.
KI-Mitarbeiter
Auto-Blog
Ein KI-Redakteur nimmt täglich die besten Topics, schreibt sie und lässt jeden Artikel auf Compliance & SEO prüfen. Nur einwandfreie Artikel gehen automatisch live — riskante landen im Review-Queue. Alle Sicherheits-Checks (Grounding, HWG, Faktencheck) bleiben aktiv.
Generierung & Publish laufen über den täglichen Cron. Zusätzlich einen Eintrag ?mode=autopublish anlegen (z. B. 13:00 & 19:00), damit fertige Drafts geprüft + veröffentlicht werden.
Fetch-Protokoll —
Editorial Policy & Blocklist Klicken zum Aufklappen
Web-Agent · Konversationen
api/_internal/agent.config.php einstellbar (aktuell: Llama 3.3 70B free via OpenRouter).
Letzte Konversationen
| Wann | Erste Frage | Msgs | Quelle | RAG |
|---|---|---|---|---|
| Wird geladen… | ||||
Backups & Wiederherstellung
Alle Backups
| Erstellt | Typ | Status | Größe | Inhalt | Aktionen |
|---|---|---|---|---|---|
| Wird geladen… | |||||
Snow-Botschafter-Verlosung
raffle_draws bleibt für Nachvollziehbarkeit erhalten.
Leaderboard
| # | Name | Empfehlungen | Lose | Chance | |
|---|---|---|---|---|---|
| Wird geladen… | |||||
Wartungs-Modus
Wenn aktiviert, sehen alle nicht eingeloggten Besucher sowie Kunden statt der Webseite eine Wartungsseite. Team- und Admin-Logins bleiben voll funktionsfähig.
Seiten-Sichtbarkeit
Hier kannst du einzelne Seiten ausblenden. Ausgeblendete Seiten verschwinden automatisch aus dem Mega-Menue, Mobile-Menue und allen Footer-Links auf der gesamten Webseite. Wirkung nach max. 1 Minute (Browser-Cache). Die Seite selbst bleibt erreichbar — wenn du sie komplett offline nehmen willst, geht das über den Wartungs-Modus oben oder per FTP loeschen.
Sicherheit
behoben
behoben
bewusst vertagt
nur Inhaber
Was nur du erledigen kannst
Braucht Zugang zu fremden Portalen — kein Skript kann das uebernehmen.
| Aufgabe | Wo | Warum |
|---|---|---|
| Spending-Limits setzen | openrouter.ai | Deckelt den Schaden jedes kuenftigen Key-Lecks. Kostet nichts und wirkt dauerhaft — der wirksamste Schritt. |
| Cron-Token rotieren | Auto-Blog → Token | Ein Token oeffnet alle Cron-Endpoints, auch destruktive Loeschlaeufe und Nutzerdaten-Abfragen. Lag im Klartext in einer lokalen Datei und im Quelltext. |
| vault.key neu erzeugen | Owner-PC, ~/.snowbyte/ |
Wurde beim Beweis des Sandbox-Ausbruchs ausgelesen. Danach Mail-Passwoerter neu eintragen. |
Kritisch — behoben
Beide waren real ausnutzbar und wurden vor dem Fix praktisch nachgewiesen.
Massnahme: Nach dem Start werden dem Werkzeug die gefaehrlichen Faehigkeiten entzogen (Dateisystem, Prozesse, Netz). Ein Ausbruch findet nichts mehr vor — das haelt auch gegen kuenftige, heute unbekannte Wege.
Massnahme: Alle Pfade laufen jetzt durch eine gemeinsame Pruefung, die den Ausbruch aus dem Arbeitsverzeichnis verhindert.
Weitere behobene Befunde
Nach Fehlerklasse gruppiert — das Muster ist wichtiger als der Einzelfall.
| Fehlerklasse | Anz. | Was es war & was dagegen getan wurde |
|---|---|---|
| Fremde Eingaben im Admin-Backend | 7 | Selbstgewaehlte Felder (Name, Geraetename, Herkunftsseite) landeten ungefiltert dort, wo ein Admin sie ansieht — teils ohne Login setzbar. Damit lief fremder Code mit Admin-Sitzung. Jetzt: Ausgabe wird entschaerft, zusaetzlich Zeichenpruefung an der Quelle. |
| Zugang & Rechte | 4 | Das Lizenz-Panel liess sich mit einem beliebigen Passwort oeffnen, falls der Verzeichnisschutz ausfiel. Ausserdem konnten Team-Konten die komplette Datenbank herunterladen. Jetzt: nur noch echter Server-Nachweis, sensible Aktionen erfordern Admin. |
| Server holt fremde Adressen | 3 | Ueber Weiterleitungen liessen sich interne Adressen abrufen, die von aussen nicht erreichbar sind. Jetzt: die tatsaechliche Gegenstelle wird geprueft, nicht nur die eingegebene Adresse. |
| Server glaubte dem Browser | 3 | Quiz-Ergebnisse kamen vom Browser — drei Anfragen genuegten fuer ein Zertifikat ohne eine einzige beantwortete Frage. Ebenso: Freigabe autonomer Mails und die Abrechnung im KI-Zugang. Jetzt: der Server entscheidet selbst. |
| Geheimnisse & Auslieferung | 3 | Produktive API-Schluessel wurden bei jedem Deploy mit hochgeladen und in Backups gepackt. Jetzt: aus Deploy und Backup ausgeschlossen; zusaetzlich kein Verzeichnis-Listing und Upload-Ordner koennen keinen Code mehr ausfuehren. |
| Einzelfaelle | 4 | Weiterleitung auf fremde Seiten ueber einen Link, Dateipfad aus einer Rechnungsnummer, Formel-Injektion im Steuerberater-Export, Rueckschluss auf vorhandene Konten ueber die Antwortzeit. |
Nach dem Bericht zusaetzlich erledigt
blog/, stage/ und themen/ — noch nicht geprueft.
Offen — bewusst vertagt
Nichts davon ist vergessen. Jeder Punkt braucht einen eigenen, getesteten Umbau statt einer schnellen Aenderung.
| Punkt | Risiko | Warum vertagt |
|---|---|---|
| Vorschau-Fenster in der Suite laufen mit vollen Rechten | hoch | Firmenweit geteilte Projekte koennen dadurch Rechte ausweiten (Mitarbeiter → Admin). Die Absicherung erfordert einen Umbau des Inline-Editors — Eingriff in eine Kernfunktion. |
| Ticket-Anhaenge werden im Browser geoeffnet, mit dem Dateityp des Hochladenden | hoch | Eine praeparierte Bilddatei kann dadurch Code ausfuehren. Fix ist klar umrissen, aber noch nicht umgesetzt. |
| 17 verbliebene Stellen mit derselben Anzeige-Schwaeche | mittel | Mechanisch, aber breit gestreut. Sinnvoll in einem Zug mit Testlauf statt verstreut. |
| Keine wirksame Schutzrichtlinie im Browser (CSP) | mittel | Fehlt als zweite Verteidigungslinie. Muss schrittweise eingefuehrt werden, sonst brechen die Inline-Skripte der Seiten. |
| Lizenz: Zeitstempel der letzten Pruefung nicht faelschungssicher | mittel | Plan und Funktionen sind sicher signiert und nicht hochstufbar. Angreifbar ist nur die Frische — ein alter Stand laesst sich weiternutzen. |
| Externe Schriften/Skripte auf zwei Seiten und in der Suite | niedrig | Verstoesst gegen die eigene Regel „keine externen CDNs". Website waeren vier Zeilen, die Suite hat noch gar keine eigenen Schriften. |
| Veraltete Programmbibliotheken | niedrig | Ein Teil laesst sich ohne Bruchgefahr aktualisieren, der Rest braucht Regressionstests. |
Gegenproben
Die Fixes sind durch laufende Tests abgesichert, nicht nur durch Zusagen im Code. Ein Befund war ausdruecklich, dass genau das vorher gefehlt hat.
| Test | Pruefungen | Sichert ab |
|---|---|---|
backend/tools/code-sandbox.selftest.js | 16 | 8 Ausbruchswege dicht, 8 Funktionstests weiter gruen |
backend/pfad-ausbruch.test.js | 7 | Kein Schreiben/Lesen ausserhalb des Arbeitsverzeichnisses |
tools/test_academy_paywall.php | 325 | Bezahlte Inhalte nicht abrufbar, freie unveraendert |
docs/15-security-audit-2026-07-29.md im Website-Repo — mit Angriffswegen, Fehlerklassen, dem was ausdruecklich in Ordnung war, und den Regeln, die daraus folgen.
Bewusst nicht ueber das Web erreichbar: docs/ ist gesperrt und wird nicht mit ausgeliefert.
Compliance
Zwei Fix-Durchgaenge am 30.07.2026 sind eingearbeitet — dazugekommen sind die Gruppen Sicherheit und Qualitaet (Befunde, bei denen das Produkt etwas anderes behauptet hat, als es tut). Was behoben ist, steht mit Beleg im Befundtext; was offen bleibt, steht als offen — auch wenn es unangenehm ist. Einzelheiten:
docs/16-compliance-audit-2026-07-30.md,
docs/17-fehlerberichte.md, docs/18-ki-kennzeichnung.md,
docs/19-plan-gate-und-befunde-30-07.md
Register
Beschreibung und Frist kommen aus der Migration und werden bei Gesetzesaenderungen dort gepflegt. Status, Nachweis und Notiz gehoeren dir — sie werden von keiner Migration ueberschrieben.
docs/16-compliance-audit-2026-07-30.md im Website-Repo —
mit Rechtsgrundlagen, Quellen, Rollen-Einordnung je Produkt und den Entscheidungen, die bewusst so getroffen wurden.
Wiedervorlage quartalsweise, ausserdem bei jedem neuen Produkt oder Auslieferungsweg.