Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
zerobox — Leichtgewichtiges, plattformübergreifendes Prozess-Sandboxing, unterstützt durch die Laufzeit von OpenAI Codex. Sandboxen Sie jeden Befehl mit Datei-, Netzwerk- und Anmeldedatenkontrollen. | Kitploit
Tools/GitHubGitHub/afshinm/zerobox
Container-SicherheitDynamische Analyse (Sandboxing)DevSecOpsKI-Sicherheit
GitHubafshinm/zerobox

zerobox

Leichtgewichtiges, plattformübergreifendes Prozess-Sandboxing, unterstützt durch die Laufzeit von OpenAI Codex. Sandboxen Sie jeden Befehl mit Datei-, Netzwerk- und Anmeldedatenkontrollen.

Repository anzeigen
6994023vor 5 MonatenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Zerobox Python SDK

Zerobox PyPI-Version Zerobox-Lizenz

Python SDK für zerobox. Führe jeden Befehl in einer Sandbox mit Datei-, Netzwerk- und Zugangsdaten-Kontrollen aus.

pip install zerobox

Die Installation des Wheels legt die zerobox-CLI in das bin/-Verzeichnis Ihrer Umgebung und stellt ein Python-SDK bereit.

Informationen zur CLI-Nutzung, zu Secrets-Konzepten, zur vollständigen Flag-Referenz, zu Leistungszahlen und zur Plattformunterstützung finden Sie in der Haupt-README.

Schnellstart

from zerobox import Sandbox

sandbox = Sandbox.create({"allow_write": ["/tmp"]})
print(sandbox.sh("echo hello").text())

Befehle

Es gibt drei Möglichkeiten, einen Befehl auszuführen. Jede gibt ein ShellCommand zurück, das Sie mit .text(), .json() oder .output() abschließen.

Shell

name = "world"
sandbox.sh(f"echo hello {name}").text()

Inline-Python

data = sandbox.py("import json; print(json.dumps({'sum': 1 + 2}))").json()

Expliziter Befehl + Argumente

sandbox.exec("python3", ["-c", "print('hi')"]).text()

Ergebnisse

MethodeBei ErfolgBei Exit ungleich null
.text()Gibt stdout als String zurückLöst SandboxCommandError aus
.json()Parst stdout als JSONLöst SandboxCommandError aus
.output()Gibt CommandOutput(code, stdout, stderr) zurückGibt dieselbe Struktur zurück, löst nie eine Ausnahme aus
data = sandbox.sh("cat data.json").json()
result = sandbox.sh("exit 42").output()
# CommandOutput(code=42, stdout='', stderr='')

Asynchrone API

Verwenden Sie AsyncSandbox in asynchronen Anwendungen, damit das Warten auf den in der Sandbox ausgeführten Unterprozess die Ereignisschleife nicht blockiert. Die Befehlsstruktur ist dieselbe wie bei Sandbox, aber Erstellung und Terminatoren werden mit await abgewartet.

from zerobox import AsyncSandbox

sandbox = await AsyncSandbox.create({"allow_write": ["/tmp"]})

text = await sandbox.sh("echo hello").text()
data = await sandbox.sh("printf '{\"ok\": true}'").json()
result = await sandbox.exec("python3", ["-c", "print('hi')"]).output()

Asynchrone Befehle akzeptieren dieselbe timeout-Option:

import subprocess

try:
    await sandbox.sh("sleep 60").text(timeout=1.0)
except subprocess.TimeoutExpired:
    print("cancelled")

Fehlerbehandlung

Ein Exit-Code ungleich null löst SandboxCommandError aus:

from zerobox import Sandbox, SandboxCommandError

sandbox = Sandbox.create()
try:
    sandbox.sh("exit 1").text()
except SandboxCommandError as e:
    print(e.code, e.stderr)

Secrets

Übergeben Sie API-Schlüssel, die der sandboxed Prozess nie sieht. Der Proxy ersetzt den echten Wert nur für genehmigte Hosts.

import os
from zerobox import Sandbox

sandbox = Sandbox.create({
    "secrets": {
        "OPENAI_API_KEY": {
            "value": os.environ["OPENAI_API_KEY"],
            "hosts": ["api.openai.com"],
        },
        "GITHUB_TOKEN": {
            "value": os.environ["GITHUB_TOKEN"],
            "hosts": ["api.github.com"],
        },
    },
})

sandbox.sh('curl -H "Authorization: Bearer $OPENAI_API_KEY" https://api.openai.com/v1/models').text()

Informationen zur Funktionsweise der Platzhalter-Ersetzung finden Sie in der Haupt-README.

Snapshots

Dateisystemänderungen aufzeichnen und automatisch zurücksetzen:

sandbox = Sandbox.create({
    "allow_write": ["."],
    "restore": True,
})
sandbox.sh("npm install").text()

Aufzeichnung ohne Rollback:

sandbox = Sandbox.create({
    "allow_write": ["."],
    "snapshot": True,
    "snapshot_exclude": ["node_modules"],
})
sandbox.sh("npm install").text()

Abbruch

Übergeben Sie einem beliebigen Terminator einen timeout (Sekunden):

import subprocess
try:
    sandbox.sh("sleep 60").text(timeout=1.0)
except subprocess.TimeoutExpired:
    print("cancelled")

Umgebungsvariablen

sandbox = Sandbox.create({
    "env": {"NODE_ENV": "production"},
    "allow_env": ["PATH", "HOME"],
    "deny_env": ["AWS_SECRET_ACCESS_KEY"],
})

Siehe die Haupt-README für die standardmäßig vererbten Einstellungen und die CLI-Äquivalente.

Optionen

Sandbox.create(options) akzeptiert eine SandboxOptions-Dataclass oder ein einfaches Dict. Alle Felder sind optional.

FeldTypBeschreibung
profilestr | list[str]Benannte(s) Profil(e). Eine Liste wird von links nach rechts zusammengeführt. Standard "workspace".
allow_read / deny_readlist[str]Lesbare / blockierte Pfade.
allow_write / deny_writelist[str]Beschreibbare / blockierte Pfade.
allow_netbool | list[str]True erlaubt alles. Eine Liste beschränkt auf diese Domains.
deny_netlist[str]Blockierte Domains.
allow_allboolVoller Dateisystem- und Netzwerkzugriff.
no_sandboxboolDeaktiviert die Sandbox vollständig.
strict_sandboxboolSchlägt fehl, statt auf schwächere Isolation zurückzufallen.
cwdstrArbeitsverzeichnis.
envdict[str, str]Explizite Umgebungsvariablen.
allow_envbool | list[str]Umgebungsvariablen des Elternprozesses erben.
deny_envlist[str]Blockierte Umgebungsvariablen.
snapshotboolDateisystemänderungen aufzeichnen.
restoreboolAufzeichnen und nach dem Beenden zurücksetzen. Impliziert snapshot.
snapshot_paths / snapshot_excludelist[str]Verfolgte Pfade / ausgeschlossene Muster.
secretsdict[str, SecretConfig]Secrets mit host-spezifischen Geltungsbereichen.
debugboolSandbox-Konfiguration auf stderr ausgeben.

Unbekannte Dict-Schlüssel (z. B. versehentlich allowWrite statt allow_write) lösen zur Konstruktionszeit einen TypeError aus.

Einschränkungen

Sandbox.py(code) führt dasjenige python3 aus, das sich im PATH innerhalb der Sandbox befindet. Wenn Ihr aktiver Interpreter außerhalb der lesbaren Wurzelverzeichnisse der Sandbox liegt (zum Beispiel uv-verwaltete Pythons unter ~/.local/share/uv/), greifen Sie stattdessen auf Folgendes zurück:

import sys
sandbox = Sandbox.create({"allow_read": [sys.prefix]})
sandbox.exec(sys.executable, ["-c", "print('hi')"]).text()

Weitere SDKs

  • TypeScript SDK (npm: zerobox)
  • Rust SDK (crates.io: zerobox)

Lizenz

Apache-2.0

Tool herunterladen