Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
zerobox — وضع عزل خفيف الوزن ومتعدد المنصات للعمليات، مدعوم بواسطة وقت تشغيل OpenAI Codex. اعزل أي أمر مع تحكمات الملفات والشبكة والبيانات الاعتمادية. | Kitploit
أدوات/GitHubGitHub/afshinm/zerobox
أمن الحاوياتالتحليل الديناميكي (عزل)DevSecOpsأمن الذكاء الاصطناعي
GitHubafshinm/zerobox

zerobox

وضع عزل خفيف الوزن ومتعدد المنصات للعمليات، مدعوم بواسطة وقت تشغيل OpenAI Codex. اعزل أي أمر مع تحكمات الملفات والشبكة والبيانات الاعتمادية.

عرض المستودع
6994016منذ 4 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

Zerobox بايثون SDK

Zerobox PyPI version Zerobox license

SDK بايثون لـ zerobox. يمكنك وضع أي أمر في صندوق رمل مع التحكم في الملفات والشبكة وبيانات الاعتماد.

pip install zerobox

تثبيت الحزمة يضع واجهة سطر الأوامر zerobox في مجلد bin/ ببيئتك ويكشف عن SDK بايثون.

لاستخدام واجهة سطر الأوامر، مفاهيم الأسرار، مرجع العلم الكامل، أرقام الأداء، ودعم المنصة، راجع الملف README الرئيسي.

بداية سريعة

from zerobox import Sandbox

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

الأوامر

ثلاث طرق لتشغيل أمر. كل واحدة ترجع ShellCommand تنهيها بـ .text() أو .json() أو .output().

شل

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

بايثون مضمن

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

أمر صريح + وسائط

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

النتائج

الطريقةعند النجاحعند خروج غير صفري
.text()يرجع stdout كسلسلة نصيةيرفع SandboxCommandError
.json()يحلل stdout كـ JSONيرفع SandboxCommandError
.output()يرجع CommandOutput(code, stdout, stderr)يرجع نفس الشكل، لا يرفع أبدًا
data = sandbox.sh("cat data.json").json()
result = sandbox.sh("exit 42").output()
# CommandOutput(code=42, stdout='', stderr='')

واجهة برمجة التطبيقات غير المتزامنة

استخدم AsyncSandbox في التطبيقات غير المتزامنة بحيث لا يحجب انتظار العملية الفرعية المعزولة حلقة الأحداث. شكل الأمر هو نفسه Sandbox، لكن الإنشاء والمنهيات تكون منتظرة.

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()

الأوامر غير المتزامنة تقبل نفس خيار timeout:

import subprocess

try:
    await sandbox.sh("sleep 60").text(timeout=1.0)
except subprocess.TimeoutExpired:
    print("تم الإلغاء")

معالجة الأخطاء

الخروج غير الصفري يرفع SandboxCommandError:

from zerobox import Sandbox, SandboxCommandError

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

الأسرار

مرر مفاتيح API التي لا تراها العملية المعزولة أبدًا. يستبدل الوكيل القيمة الحقيقية فقط للمضيفين المعتمدين.

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()

راجع الملف README الرئيسي لمعرفة كيفية عمل استبدال العناصر النائبة.

اللقطات

سجل تغييرات نظام الملفات وتراجع عنها تلقائيًا:

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

سجل دون تراجع:

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

الإلغاء

مرر timeout (بالثواني) إلى أي منهي:

import subprocess
try:
    sandbox.sh("sleep 60").text(timeout=1.0)
except subprocess.TimeoutExpired:
    print("تم الإلغاء")

متغيرات البيئة

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

راجع الملف README الرئيسي لمعرفة ما يتم توارثه افتراضيًا وما يعادله في واجهة سطر الأوامر.

الخيارات

Sandbox.create(options) يقبل فئة بيانات SandboxOptions أو قاموسًا عاديًا. جميع الحقول اختيارية.

الحقلالنوعالوصف
profilestr | list[str]ملف تعريف (ملفات تعريف) مسمى. يتم دمج القائمة من اليسار إلى اليمين. الافتراضي "workspace".
allow_read / deny_readlist[str]مسارات قابلة للقراءة / محظورة.
allow_write / deny_writelist[str]مسارات قابلة للكتابة / محظورة.
allow_netbool | list[str]True يسمح بالكل. القائمة تقتصر على تلك النطاقات.
deny_netlist[str]نطاقات محظورة.
allow_allboolوصول كامل لنظام الملفات + الشبكة.
no_sandboxboolتعطيل الصندوق الرملي بالكامل.
strict_sandboxboolفشل بدلاً من العودة إلى عزل أضعف.
cwdstrدليل العمل.
envdict[str, str]متغيرات بيئة صريحة.
allow_envbool | list[str]وراثة متغيرات بيئة الأصل.
deny_envlist[str]متغيرات بيئة محظورة.
snapshotboolتسجيل تغييرات نظام الملفات.
restoreboolتسجيل وتراجع بعد الخروج. يستلزم snapshot.
snapshot_paths / snapshot_excludelist[str]مسارات متعقبة / أنماط مستبعدة.
secretsdict[str, SecretConfig]أسرار مع نطاقات لكل مضيف.
debugboolطباعة تكوين الصندوق الرملي إلى stderr.

مفاتيح القاموس غير المعروفة (مثل allowWrite بدلاً من allow_write عن طريق الخطأ) ترفع TypeError وقت الإنشاء.

تحذيرات

يعمل Sandbox.py(code) على أي python3 موجود في PATH داخل الصندوق الرملي. إذا كان المفسر النشط الخاص بك خارج الجذور القابلة للقراءة للصندوق الرملي (على سبيل المثال، بايثون المُدارة بـ uv تحت ~/.local/share/uv/)، استخدم البديل:

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

SDKs أخرى

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

الترخيص

Apache-2.0

تنزيل الأداة