تخطَّ إلى المحتوى

تقرير المسح الأمني

الأداةالإصدارالغرض
Salesforce Code Analyzer v5الأحدثتحليل أمان Apex/LWC
PMD (incl. AppExchange rules)v5جودة الكود والأمان
ESLintv5تحليل JavaScript/LWC
RetireJSv5مكتبات JS الضعيفة
Partner Security Portal (Checkmarx)الأحدثمسح المصدر الإلزامي

كيفية إنشاء تقارير المسح

Section titled “كيفية إنشاء تقارير المسح”
Terminal window
# تثبيت Salesforce CLI
npm install -g @salesforce/cli
# تثبيت ملحق Code Analyzer v5
sf plugins install @salesforce/plugin-code-analyzer
Terminal window
# تشغيل جميع القواعد مع مخرجات HTML
sf code-analyzer run --workspace force-app --output-file docs/scan-results.html
# تشغيل قواعد AppExchange المحددة
sf code-analyzer run --rule-selector AppExchange --workspace force-app --output-file docs/scan-appexchange.html
# تشغيل القواعد الموسومة بـ Security فقط
sf code-analyzer run --rule-selector Security --workspace force-app --output-file docs/scan-security.html
# الفشل على High أو Critical (CI/CD)
sf code-analyzer run --rule-selector AppExchange --workspace force-app --severity-threshold 2 --output-file docs/scan-appexchange.html

أفضل ممارسات الأمان المطبقة

Section titled “أفضل ممارسات الأمان المطبقة”
  • فحص isCreateable() قبل INSERT
  • فحص isUpdateable() قبل UPDATE
  • فحص isDeletable() قبل DELETE
  • أذونات على مستوى الحقل عبر Permission Sets
  • يتم استخدام متغيرات الربط لمدخلات المستخدم
  • String.escapeSingleQuotes() للاستعلامات الديناميكية
  • أسماء الكائنات مشتقة من معرفات Salesforce (ليست مدخلات مستخدم)

الامتثال لنموذج المشاركة

Section titled “الامتثال لنموذج المشاركة”
  • with sharing على وحدات التحكم الرئيسية
  • without sharing فقط حيث موثق وضروري
  • تحترم سجلات المشاركة إعدادات OWD
  • لا يوجد eval() أو تنفيذ نص برمجي ديناميكي
  • يتم تنقية مدخلات المستخدم قبل العرض
  • لا توجد بيانات اعتماد مشفرة
الفحصالحالةملاحظات
استدعاءات HTTPغير قابل للتطبيقالحزمة لا تقوم باستدعاءات خارجية
Named Credentialsغير قابل للتطبيقغير مستخدم
External Objectsغير قابل للتطبيقغير مستخدم
Remote Site Settingsغير قابل للتطبيقغير مطلوب
انتهاكات CSPنجحلا توجد انتهاكات Content-Security-Policy
الفئةالتغطيةالحالة
ObjectTeamMemberController>75%نجح
TeamMemberWizardController>75%نجح
ShareRecordQueueable>75%نجح
SharingRecalculationBatch>75%نجح
ExpiredTeamMemberCleanupBatch>75%نجح
ObjectTeamMemberTriggerHandler>75%نجح
PostInstallHandler>75%نجح
الإجمالي>75%نجح

كيفية تشغيل الاختبارات مع التغطية

Section titled “كيفية تشغيل الاختبارات مع التغطية”
Terminal window
# تشغيل جميع الاختبارات مع التغطية
sf apex run test --code-coverage --result-format human --target-org [ORG_ALIAS]
# تشغيل فئة اختبار محددة
sf apex run test --tests ObjectTeamMemberTest --code-coverage --result-format human --target-org [ORG_ALIAS]

مرجع أوامر الماسح (Code Analyzer v5)

Section titled “مرجع أوامر الماسح (Code Analyzer v5)”
Terminal window
# سرد القواعد المتاحة
sf code-analyzer rules
# سرد قواعد AppExchange فقط
sf code-analyzer rules --rule-selector AppExchange
# التشغيل مع محدد قاعدة محدد
sf code-analyzer run --rule-selector Security --workspace force-app
# التصدير إلى تنسيقات مختلفة
sf code-analyzer run --workspace force-app --output-file results.html
sf code-analyzer run --workspace force-app --output-file results.sarif