مرجع أوامر سطر الأوامر CLI
شغّل php scanner --help لرؤية الخيارات المدعومة في الإصدار المثبت لديك.
php scanner [path] [options]
path يقبل ملفا أو دليلا أو حرف بدل أو عنوان FTP أو FTPS واحدا. عندما يترك فارغا، يستخدم الماسح الدليل الحالي.
الكشف
| الخيار | الغرض |
|---|---|
--lite, -l | تقليل النتائج الإيجابية الخاطئة الشائعة مع الاحتفاظ باكتشاف واسع |
--only-signatures, -s | فحص التوقيعات الخبيثة فقط |
--only-exploits, -e | فحص أنماط الثغرات المستغلة فقط |
--only-functions, -f | فحص الدوال PHP الخطرة فقط |
--exploits=<names> | تضمين تعريفات ثغرات محددة، مفصولة بفواصل |
--ignore-exploits=<names> | استبعاد تعريفات ثغرات محددة، مفصولة بفواصل |
--functions=<names> | فحص وظائف PHP محددة، مفصولة بفواصل |
--scan-all, --all | فحص الملفات بغض النظر عن الامتداد |
--scan-archives | فحص إدخالات ZIP ضمن حدود السلامة |
--scan-wordpress-db | تشغيل فحوصات للقراءة فقط ضد قاعدة بيانات WordPress محلية |
--max-filesize=<size> | تخطّي الملفات الأكبر من الحجم المحدد |
النطاق والتقدم
| الخيار | الغرض |
|---|---|
--ignore-paths=<patterns> | استبعاد مسارات أو أحرف بدل مفصولة بفواصل |
--filter-paths=<patterns> | تضمين المسارات أو أحرف البدل المطابقة فقط |
--offset=<number> | بدءا من موضع في قائمة الملفات المرشحة |
--limit=<number> | تحديد عدد الملفات المعينة |
--checkpoint=<path> | حفظ تقدم الفحص القابل للاستئناف في ملف JSON خاص |
--resume | متابعة نقطة توقف عندما لا تزال الملفات والإعدادات متطابقة |
--disable-cache, --no-cache | تجاهل نتائج الفحص المخزنة مؤقتا |
php scanner /var/www/example --lite --report \
--ignore-paths="*/cache/*,*/logs/*" \
--max-filesize=5MB
مراجعة النتائج بالذكاء الاصطناعي
تكون مراجعة الذكاء الاصطناعي معطلة افتراضيا. عند تفعيلها، يطلب AMWScan من المزوّد المحدد حكما استشاريا من نوع malware أو false_positive أو uncertain بعد اكتمال الكشف. يتضمن كل طلب القاعدة المطابقة ومقتطفا محدودا من الكود حول السطر المكتشف. ولا يغيّر حالة النتيجة أو يعدّل الملفات تلقائيا أبدا.
| الخيار | الغرض | الافتراضي |
|---|---|---|
--ai-provider=<provider> | استخدام openai أو anthropic أو gemini أو claude-code-cli أو codex-cli أو copilot-cli أو opencode-cli | disabled |
--ai-model=<model> | تجاوز نموذج المزوّد أو واجهة سطر الأوامر المثبتة | الإعداد الافتراضي للمزوّد |
--ai-context-lines=<number> | تضمين من 0 إلى 20 سطرا أعلى موضع الكشف وأسفله | 5 |
--ai-max-findings=<number> | حصر محاولات المراجعة لكل فحص بين 1 و100 | 20 |
--ai-timeout=<seconds> | تحديد مهلة كل طلب إلى المزوّد بين 5 و300 ثانية | 30 |
--ai-executable=<path> | تجاوز الملف التنفيذي الذي يستخدمه مزوّد واجهة سطر أوامر مثبت | أمر المزوّد |
تُقرأ مفاتيح API من OPENAI_API_KEY أو ANTHROPIC_API_KEY أو GEMINI_API_KEY. ويتجاوز AMWSCAN_AI_API_KEY المتغير الخاص بالمزوّد. لا تُقبل المفاتيح كخيارات أوامر لأن وسائط الأوامر قد تظهر في سجل الصدفة وقوائم العمليات.
GEMINI_API_KEY=your-key php scanner /var/www/example \
--report-only --report-format=json --ai-provider=gemini
php scanner /var/www/example --report-only \
--ai-provider=claude-code-cli --ai-model=claude-sonnet-4-5
الإعدادات الافتراضية لواجهات API المباشرة هي gpt-5.6-luna وclaude-haiku-4-5 وgemini-3.8-flash. تستدعي عمليات التكامل مع واجهات سطر الأوامر المثبتة claude أو codex أو copilot أو opencode دون استخدام صدفة وفي دليل معزول. وهي ترسل عادة مقتطفات من المصدر إلى خدمات نماذج بعيدة؛ وكونها مثبتة لا يعني أن الاستدلال محلي. استخدم --ai-executable عندما يكون الأمر مثبتا باسم أو مسار آخر.
التقارير والمخرجات
| الخيار | الغرض | الافتراضي |
|---|---|---|
--report, -r | تعطيل الإجراءات التفاعلية وكتابة تقرير | متوقف |
--report-format=<format> | تحديد html أو txt أو json أو sarif | html |
--path-report=<path> | ضبط مسار ملف التقرير | ./scanner-report.html |
--log=<path> | كتابة سجل الفحص | متوقف |
--path-logs=<path> | ضبط مسار سجل الماسح | ./scanner.log |
--silent | إخفاء المخرجات الطرفية والمطالبات | متوقف في واجهة سطر الأوامر |
--disable-report, --no-report | منع إنشاء التقرير | متوقف في واجهة سطر الأوامر |
--disable-colors, --no-colors, --no-color | إزالة ألوان ANSI | متوقف |
--debug | عرض جميع أخطاء PHP وتنبيهاتها | متوقف |
تتضمن تقارير النص إجماليات الفحص وعدد عمليات التحقق وإجماليات الخطورة وبيانات الملفات المصابة وتفاصيل النتائج المطابقة. تناسب JSON و SARIF المعالجة الآلية.
إجراءات الملفات
استخدم التنظيف أو الحذف الآلي فقط مع نسخ احتياطية حالية وخطة استعادة مختبرة. ابدأ بـ --report على كل مشروع جديد.
| الخيار | الغرض |
|---|---|
--backup, -b | نسخ احتياطي لكل ملف يغيّره الماسح |
--auto-clean | إزالة الكود المطابق دون تأكيد |
--auto-clean-line | إزالة السطر المطابق دون تأكيد |
--auto-delete | حذف الملفات المكتشفة دون تأكيد |
--auto-quarantine | نقل الملفات المكتشفة إلى الحجر |
--auto-skip | ترك كل نتيجة دون تغيير |
--auto-whitelist | إضافة كل نتيجة إلى القائمة البيضاء |
--auto-prompt=<action> | تطبيق استجابة واحدة لكل نتيجة |
--whitelist-only-path | مطابقة إدخالات القائمة البيضاء حسب المسار دون مقارنة السطر |
احفظ النسخ الاحتياطية والحجر والتقارير وبيانات القائمة البيضاء خارج الجذر الوثائقي العام:
| الخيار | الغرض |
|---|---|
--path-backups=<path> | ضبط دليل النسخ الاحتياطي |
--path-quarantine=<path> | ضبط دليل الحجر |
--path-whitelist=<path> | ضبط ملف JSON للقائمة البيضاء |
--findings-store=<path> | ضبط ملف JSON الأساسي لدورة حياة النتائج |
--path-deobfuscate=<path> | ضبط دليل الملفات المفككة |
سلامة الملفات والتعريفات
| الخيار | الغرض |
|---|---|
--disable-checksum, --no-checksum, --no-verify | تخطّي التحقق من مجموعات الأنظمة الأساسية والحزم |
--path-definitions=<path> | ضبط ذاكرة تعريفات Maltrail الخاصة |
--disable-definitions-update | استخدام آخر ذاكرة تخزين مؤقتة تم التحقق منها دون طلب تحديث |
--defs | طباعة تعريفات الثغرات والدوال |
--defs-exploits | طباعة تعريفات الثغرات |
--defs-functions | طباعة تعريفات الدوال الخطرة |
--defs-functions-encoded | طباعة تعريفات الدوال المشفرة |
تبقى التوقيعات المدمجة متاحة دون اتصال. وقد تتطلب فحوصات سلامة المنصات وتحديثات تعريفات Maltrail اتصالات HTTPS خارجية في أول فحص.
خيارات المرافق
| الخيار | الغرض |
|---|---|
--ftp-user=<username> | ضبط اسم مستخدم FTP، أو استخدم AMWSCAN_FTP_USER |
--update, -u | تحديث ملف الماسح المستقل |
--version, -v | طباعة الإصدار المثبت |
--help, -h, -? | طباعة تعليمات الأمر |
مصادر FTP
مرّر عنوانا واحدا من نوع ftp://host/path أو ftps://host/path كمسار فحص. يحتاج PHP إلى امتداد FTP، ويحتاج FTPS إلى ftp_ssl_connect.
لا تضع بيانات الاعتماد في عنوان URL. عيّن اسم المستخدم عبر --ftp-user أو AMWSCAN_FTP_USER. عيّن كلمة المرور عبر AMWSCAN_FTP_PASSWORD. يفضّل FTPS لأن FTP يرسل بيانات الاعتماد ومحتوى الملفات دون تشفير.
AMWSCAN_FTP_USER=scanner \
AMWSCAN_FTP_PASSWORD=secret \
php scanner ftps://files.example.com/public_html --report
تستخدم فحوصات FTP مرآة محلية مؤقتة، وتفرض وضع التقرير، ثم تزيل المرآة بعد الانتهاء. يسمح بفحص واحد بمصدر FTP واحد بحد أقصى 10000 ملف، و64 ميجابايت لكل ملف، و512 ميجابايت إجمالا. لا يمكن استخدام --scan-wordpress-db مع مصادر FTP.
التحقق من سلامة النظام الأساسي
يدعم التحقق من المجاميع الحسابية WordPress وبعض إضافات WordPress، وDrupal، وJoomla، وMagento Open Source، وحزم Composer العامة. يتخطّى الماسح فقط الملفات التي تطابق بايتات الإصدار الموثوق. يفحص الملفات المعدلة والمولدة وغير المعروفة.
قد يتطلب أول فحص لنظام أساسي اتصالات HTTPS خارجية. تبقى الملفات المعلومة في التخزين المؤقت المحلي. استخدم --disable-checksum عندما يجب أن لا يقوم الفحص بأي طلب للتحقق من السلامة.
التغطية والاستئناف
تفصل التقارير الملفات المكتشفة والصالحة للفحص والمفحوصة والمخزنة مؤقتا والمتحقق منها والمتخطاة. تشمل أسباب التخطي عوامل التصفية في المسار والامتدادات وحجم الملف والملفات غير القابلة للقراءة وحدود الأرشيف.
يحفظ --checkpoint=<private-path> التقدم بعد كل مرشح. يستأنف --resume فقط عندما تظل قائمة المرشحين وإعدادات الفحص متطابقة.
يتطلب فحص ZIP وجود ext-zip. يحدّ الماسح مسارات الإدخالات والارتباطات الرمزية وعدد الإدخالات وحجم الملف والحجم الموسّع ونسبة الضغط وعمق التداخل. تشير التقارير إلى المحتوى خارج هذه الحدود باعتباره تغطية غير مكتملة.
فحص قاعدة بيانات WordPress
يقوم --scan-wordpress-db بمرحلة اختيارية للقراءة فقط ضد تثبيتات WordPress المكتشفة محليا. يفحص المشغلات، ويعدّد مسؤولي الموقع الأساسي، ويعلّم المسؤولين المتعددين للمراجعة، ويبلغ عن المقالات اليتيمة. ولا يغيّر محتوى قاعدة البيانات.
يتطلب هذا الخيار ext-mysqli. يقرأ AMWScan إعدادات قاعدة البيانات الحرفية من wp-config.php دون تنفيذ الملف. تنتج الإعدادات الديناميكية أو غير الواضحة نتيجة تغطية غير مكتملة.
توجيهات الخروج والأتمتة
استخدم JSON عندما يعالج برنامج آخر النتائج التفصيلية. استخدم SARIF للأدوات التي تدعم هذا التنسيق القياسي. احتفظ بالتقارير كمنتجات بناء، واحمِ أي مسارات محلية أو مقتطفات من الكود قد تحتوي عليها، واختبر سلوك الخروج في مهام التكامل المستمر قبل جعلها بوابة إصدار.