تخطٍّ إلى المحتوى
Fendixالتوثيقالتوثيق

.fendix.yaml · SEC-001 · SARIF

الإصدار الحالي v3.7.0
مرجعمستقرv3.7.0

scan

خيارات fendix scan الدقيقة للأهداف والمصادقة والمحللات والسياسة والتغطية والإخراج.

في هذه الصفحة

يفحص عنوانًا مصرّحًا به أو مواصفات API أو شيفرة مصدرية، أو يجمع بينها، ثم ينتج تقريرًا أمنيًا خاضعًا للسياسة.

مستقر في v3.7.0

الصيغة

terminal
fendix scan [flags]

المعاملات والمدخلات المطلوبة

يلزم تحديد واحد على الأقل من --url أو --spec أو --code. يضيف --import أدلة إلى الفحص ولا يفي بمتطلب الهدف.

أمثلة

فحص API أساسي

terminal
fendix scan --url https://staging.example.com

فحص الشيفرة المصدرية

terminal
fendix scan --code . --format json --output results.json

بوابة التغطية

terminal
fendix scan --code . --require-analyzers pip,npm,govulncheck --fail-on-coverage-gap

إخراج SARIF

terminal
fendix scan --code . --format sarif --output results.sarif

الأهداف والنطاق

مرّر الجدول أفقيًا للاطلاع على جميع الأعمدة.

الخيارالنوعالافتراضيالإلزامالتهيئةالبيئةالوصف
--urlstring—اختياري——عنوان API الأساسي لفحص الصندوق الأسود.
--specstring—اختياري——مسار أو عنوان HTTP(S) لمواصفات OpenAPI أو Swagger بصيغة YAML أو JSON.
--codestring—اختياري——مسار الشيفرة المصدرية لفحص الصندوق الأبيض.

المصادقة

مرّر الجدول أفقيًا للاطلاع على جميع الأعمدة.

الخيارالنوعالافتراضيالإلزامالتهيئةالبيئةالوصف
--authstring—اختياري—FENDIX_AUTHقيمة بيانات المصادقة المرسلة مع الطلبات.
--auth-typestring—اختياري—FENDIX_AUTH_TYPEآلية إرسال بيانات المصادقة؛ تُكتشف تلقائيًا عند تركها فارغة.bearer · apikey · apikey-query · basic · cookie
--auth-headerstringAuthorizationاختياري—FENDIX_AUTH_HEADERاسم ترويسة المصادقة، أو اسم معامل الاستعلام عند استخدام apikey-query.
--auth-user2string—اختياري——بيانات مستخدم ثانٍ لاختبارات IDOR.
--profilestring—اختياريauth.profile—اسم ملف المصادقة داخل ~/.fendix/profiles/.

الزحف وضوابط الأمان

مرّر الجدول أفقيًا للاطلاع على جميع الأعمدة.

الخيارالنوعالافتراضيالإلزامالتهيئةالبيئةالوصف
--enable-activeboolfalseاختياريscan.enable_active—يفعّل اختبارات الحقن النشطة بموافقة صريحة.
--max-probes-per-endpointint20اختياري——الحد الأقصى للاختبارات النشطة لكل نقطة نهاية.
-w, --workersint10اختياريscan.workers—عدد عمال HTTP المتزامنين.
--timeoutint10اختياريscan.timeout—مهلة طلب HTTP بالثواني.
--delayint100اختياريscan.delay_ms—الفاصل بالمللي ثانية بين طلبات HTTP.
--wordliststring—اختياريcrawler.wordlist_path—مسار قائمة كلمات لاكتشاف المسارات بدل القائمة المضمنة.
--crawl-depthint1اختياريcrawler.crawl_depth—عمق تتبع الروابط المكتشفة؛ تعني 0 تعطيل الزحف.
--max-endpointsint500اختياريcrawler.max_endpoints—الحد الأقصى لنقاط النهاية المكتشفة؛ تعني 0 عدم وجود حد.
--max-requestsint640اختياريbudgets.max_requests—حد لين لإجمالي طلبات HTTP؛ تعني 0 عدم وجود حد.
--max-durationduration0sاختياريbudgets.max_duration—حد لين للمدة الإجمالية؛ تعني 0 عدم وجود حد.
--respect-robotsboolfalseاختياريcrawler.respect_robots—يعامل تعليمات Disallow في robots.txt كقيود ملزمة.
--allow-private-targetsboolfalseاختياري——يسمح بالاتصال بالعناوين الخاصة والمحلية ويعطّل حاجز SSRF للاتصالات الصادرة.

المحللات والاستيراد

مرّر الجدول أفقيًا للاطلاع على جميع الأعمدة.

الخيارالنوعالافتراضيالإلزامالتهيئةالبيئةالوصف
--checksstringSliceauth,injection,deps (runtime)اختياري · قابل للتكرار——يستبدل مجموعة فحوصات محرك Python عند تشغيله؛ القيمة الافتراضية auth,injection,deps. يفعّل --code هذه المرحلة تلقائيًا ما لم تمرر --python-engine=false صراحة، بينما تعمل محللات Go الأصلية بصورة مستقلة.auth · injection · deps
--python-engineboolauto-enabled by --code unless explicitly falseاختياري——يشغّل محرك Python لفحوصات auth وinjection وdeps. يفعّله --code تلقائيًا ما لم تمرر --python-engine=false صراحة. لا تتضمن الملفات التنفيذية المستقلة المحرك؛ وفّر شجرة python محلية أو FENDIX_ENGINE، بينما تتضمنها الحاوية الرسمية.
--fastboolfalseاختياري——يتجاوز Semgrep ومحللات التبعيات الأصلية؛ لا يعطّل محرك Python تلقائيًا.
--no-native-depsboolfalseاختياري——يعطّل محلل ثغرات التبعيات الأصلي المكتوب بلغة Go.
--use-pip-auditboolfalseاختياري——يستخدم pip-audit بدل عميل OSV الأصلي لفحص تبعيات Python.
--offlineboolfalseاختياري——يستخدم لقطة offline-db المحلية لثغرات pip وnpm الأصلية ويتجاوز govulncheck الأصلي؛ أنشئ اللقطة عبر fendix db update. لا يصل هذا الخيار إلى فحص تبعيات Python الذي يفعّله --code تلقائيًا وقد يستخدم أدوات متصلة بالشبكة؛ أضف --checks auth,injection أو --python-engine=false للحصول على فحص معزول عن الشبكة.
--offline-dbstring~/.fendix/offline-db.json (runtime)اختياري——مسار لقطة قاعدة الثغرات المحلية؛ يعمل مع --offline.
--no-pluginsboolfalseاختياري——يعطّل اكتشاف الإضافات الخارجية.
--allow-repo-local-pluginsboolfalseاختياري——يسمح بتشغيل إضافات المستودع المحلية؛ لا تستخدمه مع طلبات دمج غير موثوقة.
--importstringSlice—اختياري · قابل للتكرار——يدمج ملف SARIF 2.1.0 من أداة أخرى؛ الخيار قابل للتكرار.

القرارات والتغطية

مرّر الجدول أفقيًا للاطلاع على جميع الأعمدة.

الخيارالنوعالافتراضيالإلزامالتهيئةالبيئةالوصف
--fail-onstring—اختياريfail_on—يعيد رمز الخروج 1 عندما تصل نتيجة عند هذا الحد أو فوقه إلى BLOCK.CRITICAL · HIGH · MEDIUM · LOW
--enforce-confidencebooltrueاختياريscan.enforce_confidence—لا يسمح بوصول نتيجة عند --fail-on أو فوقه إلى BLOCK إلا إذا دعمها نطاق الثقة ودليل مؤيد. يبقى نطاق LOW عند WARN، ولا يحجب نطاق MEDIUM الإصدار إلا بإشارة مستقلة، بينما تحتاج الإشارات البديهية بذاتها إلى نطاق HIGH. لا تُحذف الأدلة. يعيد --enforce-confidence=false بوابة الخطورة القديمة فقط، وتُوسم النتائج التي تحجب بسبب هذا التخفيف وحده بالحقل policy_override.
--deescalate-testsbooltrueاختياريscan.deescalate_tests—يعرض نتائج شيفرة الاختبار وبيانات الاختبار عند INFO بدل WARN مع إبقاء الأدلة وعدم إخفائها. يمكن لنتيجة تبلغ --fail-on أن تمنع الإصدار إذا دعمتها أدلة مستقلة، بينما تبقى المطابقة غير المدعومة في شيفرة الاختبار عند WARN. مرّر --deescalate-tests=false لمعاملة شيفرة الاختبار مثل شيفرة الإنتاج.
--block-on-inapplicableboolfalseاختياري——يمنع الإصدار بسبب تبعية مصابة حتى عندما لا تجد Fendix استيرادًا للمكوّن المتأثر. القيمة الافتراضية false تُبقي النتيجة عند WARN مع عرض أدلتها كاملة لأن المسار المصاب غير قابل للتطبيق وفق الأدلة المتاحة. فعّل الخيار عندما تمنع السياسة شحن أي إصدار مصاب بصرف النظر عن قابلية التطبيق، مثل تدقيق SBOM بدل مسار الاستدعاء.
--fail-on-scanner-errorboolfalseاختياري——يعيد رمز الخروج 2 إذا بدأ أي محلل مسجل في metadata.scanner_status التنفيذ ثم سجل خطأ. يحوّل ذلك فجوة التغطية الصامتة إلى إخفاق مناسب لـ CI، ولا تُحتسب الإدخالات المتجاوزة.
--fail-on-coverage-gapboolfalseاختياري——يعيد رمز الخروج 2 عندما يتعذر تشغيل محلل جرت تهيئته لهذا الفحص أو يفشل، أي عندما تكون metadata.coverage.configured_complete=false. لا تتسبب المحللات المعطلة أو غير القابلة للتطبيق أو غير المدعومة في هذا الإخفاق.
--require-analyzersstringSlice—اختياري · قابل للتكرار——قائمة بأسماء المحللات المطلوبة مفصولة بفواصل. يجب أن يسجل كل محلل الحالة ok أو not_applicable حتى يعيد الفحص الرمز 0، وأي حالة أخرى تعيد الرمز 2. هذا أشد من --fail-on-coverage-gap؛ تعطيل محلل مطلوب بخيار آخر يُعد تعارضًا ويعيد الرمز 2.dast · spec · active-probes · secrets · textscan · semgrep · govulncheck · pip · npm · python-engine · python-engine/auth · python-engine/injection · python-engine/deps · plugins

السياسة والسجل

مرّر الجدول أفقيًا للاطلاع على جميع الأعمدة.

الخيارالنوعالافتراضيالإلزامالتهيئةالبيئةالوصف
--configstring.fendix.yaml in cwd (auto-detect)اختياري——مسار ملف .fendix.yaml؛ يبحث Fendix عنه في مجلد العمل تلقائيًا عند غياب الخيار.
--baselinestring—اختياري——مسار تقرير نتائج سابق للمقارنة أو التحقق.
--save-baselinestring—اختياري——يحفظ النتائج الحالية كخط أساس في المسار المحدد.
--ignorestring—اختياريignore_path—مسار ملف .fendix-ignore.
--diffstring—اختياري——يقصر فحص الشيفرة على الملفات المتغيرة مقارنة بمرجع Git.
--stagedboolfalseاختياري——يفحص تغييرات Git المرحلية فقط ويضمّن سلوك --diff.

الإخراج والتشخيص

مرّر الجدول أفقيًا للاطلاع على جميع الأعمدة.

الخيارالنوعالافتراضيالإلزامالتهيئةالبيئةالوصف
-o, --outputstring—اختياري——مسار ملف الإخراج؛ يستخدم stdout عند تركه فارغًا.
-f, --formatstringjsonاختياريscan.format—صيغة التقرير الناتج.json · html · sarif · pdf
--langstringenاختياري——لغة تقرير HTML؛ تبقى الصيغ الأخرى بالإنجليزية.en · ar
--debug-bundlestring—اختياري——يكتب حزمة تشخيص منقحة إلى المسار المحدد.
-v, --verboseboolfalseاختياري——يعرض الطلبات والنتائج الخام لأغراض التشخيص.