إنتقل إلى المحتوى الرئيسي
الإصدار: v0.20

سلامة وحالة PHP SDK

يقرأ SDK ملفات مشروع غير موثوقة ويمكنه تغييرها عند تفعيل المعالجة. تعامل مع الفحص بوصفه عملية ذات امتيازات لها هدف صريح وتخزين مضبوط ومسار مراجعة لكل نتيجة.

إعدادات عامة للعملية

يخزن Scanner إعداداته وتقريره الحالي في حالة ساكنة. تعيد أدوات الضبط المتسلسلة نسخة Scanner جديدة، لكنها تعدل حالة العملية المشتركة تلك.

$first = new Scanner();
$second = $first->setPathScan('/srv/project-a');

// Both objects observe the same Scanner configuration.

شغّل فحصا واحدا في كل مرة في كل عملية PHP. استخدم عملية CLI جديدة للمهام الخلفية أو الطلبات المتزامنة أو عزل المستأجرين. يجب على عامل طويل العمر تطبيق الإعداد الكامل قبل كل تشغيل وتجنب إعادة استخدام حالة من مهمة سابقة.

تعيد run() تعيين التقرير عند بدء الفحص. لكنها لا تعيد تعيين إعدادات الفاحص الأوسع. لا تعتمد على إنشاء كائن لاستعادة الإعدادات الافتراضية.

إجراءات الملفات

يختلف سلوك المطالبة الافتراضي بين عمليات التشغيل التفاعلية والصامتة. اختر إجراء صراحة في الشيفرة غير المراقبة:

$report = (new Scanner())
->setPathScan('/srv/app')
->setSilentMode()
->setAutoSkip()
->run();

لأي إجراء يغير الملفات، استدع enableBackups() واضبط setPathBackups() إلى دليل قابل للكتابة خارج الهدف. احتفظ بالحجر الصحي والقائمة البيضاء وإزالة التمويه والتقارير والسجلات والنتائج الدائمة ونقاط التحقق خارج المشروع المفحوص كي لا يفحص الفاحص مخرجاته الخاصة.

قبل تفعيل التنظيف التلقائي أو الحجر الصحي أو الحذف:

  1. شغّل فحوصات تقتصر على التقرير مقابل نسخ ممثلة من التطبيق.
  2. تحقق من coverage وfindings وdiagnostics لكل تشغيل.
  3. اختبر إجراءات النسخ الاحتياطي والاستعادة تحت الحساب نفسه الذي يشغّل فحوصات الإنتاج.
  4. أبق مسار الهدف مقيدا بجذور المشروع المعتمدة.

المسارات والأذونات

مرر مسارات مطلقة من إعدادات موثوقة. وحّد المسارات المشتقة من الطلب وفوضها قبل استدعاء setPathScan() أو setPathReport() أو أي أداة ضبط مسار أخرى. يوحّد SDK المسارات باستخدام Path::get()، لكن التوحيد لا يفرض حد التفويض في تطبيقك.

شغّل الفاحص بأقل وصول إلى نظام الملفات يلزم لقراءة الهدف وكتابة مخرجاته المضبوطة. لا تشغّل طلب ويب بحساب يمكنه فحص أو حذف ملفات خارج جذر النشر المقصود.

سلوك الشبكة والتشغيل دون اتصال

يستخدم فحص الشيفرة الأساسي تعريفات مضمّنة. يمكن أن يستخدم التحقق من السلامة وتعريفات نطاق Maltrail HTTPS صادر. يخزن الفاحص البيانات البعيدة الناجحة في ذاكرة تخزين مؤقت لنظام التشغيل خارج هدف الفحص.

عندما تحظر بيئتك الحركة الصادرة، التقط تشخيصات التقرير واحتفظ بها. يمكن أن يترك تحديث فاشل تعريفات مخزنة مؤقتا نشطة؛ ويسجل التقرير البيانات الوصفية المتاحة في signature_indexes. لا تفترض مصفوفة تشخيصات فارغة عندما لا يوجد مسار شبكة.

سياسة الفشل

تعامل مع false من run() بوصفه خطأ تشغيليا. تعامل مع التغطية غير المكتملة والتشخيصات والتحذيرات بوصفها إشارات للمراجعة. خزّن التقرير مع طابعه الزمني للفحص وهوية الهدف وإصدار الفاحص من Scanner::getVersion() وأي معرّف مهمة خارجي.

يعرض SDK رسائل الأخطاء الملتقطة عبر getLastError(). سجلها في سجل تطبيق محمي. لا تعرض مسارات الهدف أو محتويات التقرير أو نص الخطأ الخام لمستخدمين غير موثوقين.