Moat
Ein kleines PHP-Gate auf dem bestehenden Hosting, das API-Schlüssel aus dem Browser fernhält und nur freigegebene Anfragen weiterleitet. Noch in Entwicklung.
KI-generiert- Tools
Moat ist noch in Entwicklung. Das Gate, die Kommandozeile und die Desktop-App funktionieren, Moat Cloud gibt es noch nicht. Wer es ausprobieren will, findet alles auf GitHub.
Das Problem
Viele kleine Firmen haben ihre Website auf einem gewöhnlichen Shared Hosting: PHP, ein FTP-Zugang, kein eigener Server. Sobald die Website mit einem anderen Dienst sprechen soll, wird es heikel. Ein Newsletter-Formular legt einen Kontakt in HubSpot oder Mailchimp an, ein Chat auf der Website fragt OpenAI. Dafür braucht es einen API-Schlüssel, und der darf nie im Browser landen. Wer ihn dort findet, kann im Namen der Firma Kontakte lesen, Mails verschicken oder auf ihre Rechnung KI-Anfragen stellen.
Die üblichen Auswege sind ein eigenes Backend, ein kostenpflichtiger API-Gateway-Dienst oder ein schnell geschriebenes PHP-Skript, das den Schlüssel im Klartext enthält und alles weiterleitet, was ankommt. Moat soll ein vierter Weg sein: einfach genug für ein Shared Hosting und trotzdem sicher.
Was ist Moat?
Moat legt ein kleines Gate auf das Hosting, das man schon hat: eine einzelne PHP-Datei, ohne Composer und ohne Datenbank. Die Website ruft nur noch das Gate auf, und das Gate:
- leitet nur freigegebene Routen weiter: genaue Methode und Pfad, eine feste Zieladresse, nur HTTPS. Alles andere beantwortet es mit einem Fehler.
- fügt den API-Schlüssel erst auf dem Weg nach draussen hinzu. Der Browser sieht ihn nie, und auch auf dem Hosting liegt er nur verschlüsselt.
- begrenzt, was ein Besucher tun kann: Rate Limits pro Besucher und insgesamt, die Grösse einer Anfrage, erlaubte Inhaltstypen und welche Websites das Gate überhaupt aufrufen dürfen.
- lässt sich sperren: Eine Umgebung wie «staging» oder ein einzelnes Gate wird mit einem Befehl abgeschaltet und leitet dann nichts mehr weiter.
Sicher, auch wenn etwas schiefgeht
Bei Moat gilt eine Regel über allen anderen: Selbst wenn Moat Cloud gehackt wird, darf das Gate auf dem Hosting nicht kompromittiert werden. Daraus folgt:
- Die Konfiguration ist reine Daten, nie Code. Das Gate führt nichts aus, was es empfängt.
- Eine neue Konfiguration nimmt das Gate nur an, wenn sie mit dem eigenen Schlüssel signiert ist, für genau dieses Gate gilt und eine höhere Version hat als die bisherige.
- Secrets werden auf dem eigenen Computer für ein bestimmtes Gate versiegelt und lassen sich nur dort wieder öffnen.
- Eine lokale Richtlinie auf dem Hosting legt fest, was überhaupt erlaubt ist, und geht der Konfiguration immer vor.
- Das Gate hat keine Admin-Oberfläche im Internet.
- Zieladressen prüft das Gate vor dem Verbinden: keine internen Adressen, keine automatischen Weiterleitungen.
Wie viel man Moat Cloud vertraut, entscheidet man selbst. Mit Moat Desktop oder der Kommandozeile arbeitet jedes Gate im Modus «Signiert»: Jede Änderung gibt man mit der eigenen Schlüsseldatei frei. Wenn Moat Cloud gehackt wird, kann ein Angreifer nichts ändern.
Moat Desktop
Moat Desktop ist die App für den eigenen Computer, ohne Konto und ohne Server. Jede Website ist ein Projekt, und ein Projekt ist ein Ordner mit einer moat.yaml, den man auch mit Git verwalten kann. Die App zeigt auf einen Blick, welche Routen, Gates und Umgebungen es gibt, ob alle Secrets versiegelt sind und ob ein Gate gesperrt ist.
Routen, Upstreams und Umgebungen lassen sich direkt in der App bearbeiten. Kommentare in der moat.yaml bleiben dabei erhalten, und eine Hilfe erklärt jeden Schritt. Versiegeln und Signieren laufen vorerst noch über die Kommandozeile.
Für wen?
Für kleine Firmen, Vereine und Agenturen, deren Website auf einem Shared Hosting läuft und die ein paar Dienste anbinden wollen, ohne dafür einen eigenen Server zu betreiben. Das Gate braucht nur PHP 8.2 oder neuer mit den Erweiterungen sodium und curl. Später sollen Gates für Node und .NET dazukommen.
Was es schon gibt und was noch kommt
- Funktioniert: das PHP-Gate (signierte Bundles, exaktes Routing, Schutz vor SSRF, CORS, Rate Limits, Sperren), die Kommandozeile
moatund Moat Desktop. - Geplant: Moat Cloud als Dashboard, als Dienst oder selbst gehostet mit Docker oder Kubernetes; Kontingente und Budgets, damit zum Beispiel ein KI-Chat nicht mehr als einen festen Betrag pro Tag kosten kann; Versiegeln und Signieren direkt in der Desktop-App; ein Einrichtungsassistent und fertige Vorlagen für Dienste wie HubSpot oder OpenAI.
Wie es gebaut ist
- Ein Nx-Monorepo in TypeScript. Moat Core enthält Schema, Signieren und Versiegeln genau einmal, und Kommandozeile, Desktop und später die Cloud verwenden denselben Code.
- Das Gate ist PHP ohne Abhängigkeiten zur Laufzeit, gebaut als eine einzige Datei, geprüft mit PHPStan auf höchster Stufe und getestet auf PHP 8.2 bis 8.5.
- Kryptografie nur mit libsodium (Ed25519-Signaturen, XChaCha20-Poly1305), in TypeScript und PHP gegen dieselben Testvektoren geprüft.
- Moat Desktop mit Electron und Angular, die Konfiguration als YAML mit einem strengen Schema.
- Gemeinsame Konformitätstests, die jedes Gate bestehen muss, und Sicherheitstests aus der Sicht eines Angreifers.
- Geplant, gebaut und getestet zu einem grossen Teil zusammen mit KI-Agenten.
Code und Lizenz
Der Code liegt auf GitHub, unter der MIT-Lizenz. Man darf ihn frei nutzen, ändern und weitergeben, auch kommerziell. Fehler und Ideen sind als Issues willkommen. Die Screenshots zeigen Beispieldaten, in den Demos wurde keine echte API aufgerufen.