OpenClaw verwendetDocumentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
@openclaw/fs-safe für sicherheitsrelevante lokale Dateioperationen: auf ein Stammverzeichnis begrenzte Lese-/Schreibvorgänge, atomare Ersetzung, Archivextraktion, temporäre Arbeitsbereiche, JSON-Zustand und die Behandlung von Secret-Dateien.
Das Ziel ist ein konsistenter Schutzmechanismus auf Bibliotheksebene für vertrauenswürdigen OpenClaw-Code, der nicht vertrauenswürdige Pfadnamen erhält. Es ist keine Sandbox. Die Dateisystemberechtigungen des Hosts, Betriebssystembenutzer, Container und die Agent-/Tool-Richtlinie definieren weiterhin den tatsächlichen Auswirkungsbereich.
Standard: kein Python-Hilfsprozess
OpenClaw setzt den fs-safe-POSIX-Python-Hilfsprozess standardmäßig auf aus. Warum:- Der Gateway sollte keinen persistenten Python-Sidecar starten, sofern ein Betreiber dies nicht ausdrücklich aktiviert hat;
- viele Installationen benötigen die zusätzliche Härtung gegen Änderungen übergeordneter Verzeichnisse nicht;
- das Deaktivieren von Python hält das Paket- und Laufzeitverhalten über Desktop-, Docker-, CI- und gebündelte App-Umgebungen hinweg besser vorhersagbar.
FS_SAFE_PYTHON_MODE und FS_SAFE_PYTHON.
Was ohne Python geschützt bleibt
Bei ausgeschaltetem Hilfsprozess verwendet OpenClaw weiterhin die Node-Pfade von fs-safe für:- das Zurückweisen relativer Pfadausbrüche wie
.., absoluter Pfade und Pfadtrennzeichen, wenn nur Namen erlaubt sind; - das Auflösen von Operationen über ein vertrauenswürdiges Stamm-Handle statt über Ad-hoc-Prüfungen mit
path.resolve(...).startsWith(...); - das Ablehnen von Symlink- und Hardlink-Mustern in APIs, die diese Richtlinie erfordern;
- das Öffnen von Dateien mit Identitätsprüfungen, wenn die API Dateiinhalte zurückgibt oder entgegennimmt;
- atomare Schreibvorgänge über temporäre Geschwisterdateien für Zustands-/Konfigurationsdateien;
- Byte-Limits für Lesevorgänge und Archivextraktion;
- private Modi für Secrets und Zustandsdateien, wenn die API sie erfordert.
Was Python hinzufügt
Unter POSIX hält der optionale Hilfsprozess von fs-safe einen persistenten Python-Prozess vor und verwendet fd-relative Dateisystemoperationen für Änderungen an übergeordneten Verzeichnissen wie Umbenennen, Entfernen, Erstellen von Verzeichnissen, Stat-/List-Vorgänge und einige Schreibpfade. Das verkleinert Race-Condition-Fenster mit derselben UID, in denen ein anderer Prozess ein übergeordnetes Verzeichnis zwischen Validierung und Änderung austauschen kann. Es ist Defense in Depth für Hosts, auf denen nicht vertrauenswürdige lokale Prozesse dieselben Verzeichnisse ändern können, in denen OpenClaw arbeitet. Wenn Ihr Deployment dieses Risiko hat und Python garantiert vorhanden ist, verwenden Sie:require statt auto, wenn der Hilfsprozess Teil Ihrer Sicherheitsstrategie ist; auto fällt absichtlich auf reines Node-Verhalten zurück, wenn der Hilfsprozess nicht verfügbar ist.
Anleitung für Plugin und Kern
- Dateizugriff, der Plugins bereitgestellt wird, sollte über
openclaw/plugin-sdk/*-Hilfsfunktionen erfolgen, nicht über rohesfs, wenn ein Pfad aus einer Nachricht, Modellausgabe, Konfiguration oder Plugin-Eingabe stammt. - Kerncode sollte die lokalen fs-safe-Wrapper unter
src/infra/*verwenden, damit die Prozessrichtlinie von OpenClaw konsistent angewendet wird. - Archivextraktion sollte die fs-safe-Archivhilfsfunktionen mit expliziten Limits für Größe, Eintragsanzahl, Links und Ziel verwenden.
- Secrets sollten die Secret-Hilfsfunktionen von OpenClaw oder die fs-safe-Hilfsfunktionen für Secrets/privaten Zustand verwenden; implementieren Sie keine eigenen Modusprüfungen um
fs.writeFileherum. - Wenn Sie Isolation gegenüber feindlichen lokalen Benutzern benötigen, verlassen Sie sich nicht allein auf fs-safe. Führen Sie getrennte Gateways unter getrennten Betriebssystembenutzern/Hosts aus oder verwenden Sie Sandboxing.