Aller au contenu

Rapport de scan de sécurité

OutilVersionObjectif
Salesforce Code Analyzer v5LatestAnalyse de sécurité Apex/LWC
PMD (incl. règles AppExchange)v5Qualité du code et sécurité
ESLintv5Analyse JavaScript/LWC
RetireJSv5Bibliothèques JS vulnérables
Partner Security Portal (Checkmarx)LatestScan de source obligatoire
Fenêtre de terminal
# Installer Salesforce CLI
npm install -g @salesforce/cli
# Installer le plugin Code Analyzer v5
sf plugins install @salesforce/plugin-code-analyzer
Fenêtre de terminal
# Exécuter toutes les règles avec sortie HTML
sf code-analyzer run --workspace force-app --output-file docs/scan-results.html
# Exécuter les règles spécifiques à AppExchange
sf code-analyzer run --rule-selector AppExchange --workspace force-app --output-file docs/scan-appexchange.html
# Exécuter uniquement les règles étiquetées Security
sf code-analyzer run --rule-selector Security --workspace force-app --output-file docs/scan-security.html
# Échouer sur High ou Critical (CI/CD)
sf code-analyzer run --rule-selector AppExchange --workspace force-app --severity-threshold 2 --output-file docs/scan-appexchange.html
  • Vérification isCreateable() avant INSERT
  • Vérification isUpdateable() avant UPDATE
  • Vérification isDeletable() avant DELETE
  • Permissions au niveau des champs via les ensembles de permissions
  • Variables liées utilisées pour l’entrée utilisateur
  • String.escapeSingleQuotes() pour les requêtes dynamiques
  • Noms d’objets dérivés des ID Salesforce (pas d’entrée utilisateur)
  • with sharing sur les contrôleurs principaux
  • without sharing uniquement là où documenté et nécessaire
  • Les enregistrements de partage respectent les paramètres OWD
  • Pas d’eval() ou d’exécution de script dynamique
  • Entrée utilisateur assainie avant affichage
  • Pas d’identifiants codés en dur
VérificationStatutNotes
HTTP CalloutsN/ALe package ne fait aucun appel externe
Named CredentialsN/ANon utilisé
External ObjectsN/ANon utilisé
Remote Site SettingsN/ANon requis
Violations CSPRéussiteAucune violation Content-Security-Policy
ClasseCouvertureStatut
ObjectTeamMemberController>75%Réussite
TeamMemberWizardController>75%Réussite
ShareRecordQueueable>75%Réussite
SharingRecalculationBatch>75%Réussite
ExpiredTeamMemberCleanupBatch>75%Réussite
ObjectTeamMemberTriggerHandler>75%Réussite
PostInstallHandler>75%Réussite
Global>75%Réussite
Fenêtre de terminal
# Exécuter tous les tests avec couverture
sf apex run test --code-coverage --result-format human --target-org [ORG_ALIAS]
# Exécuter une classe de test spécifique
sf apex run test --tests ObjectTeamMemberTest --code-coverage --result-format human --target-org [ORG_ALIAS]

Référence des commandes du scanner (Code Analyzer v5)

Section intitulée « Référence des commandes du scanner (Code Analyzer v5) »
Fenêtre de terminal
# Lister les règles disponibles
sf code-analyzer rules
# Lister uniquement les règles AppExchange
sf code-analyzer rules --rule-selector AppExchange
# Exécuter avec un sélecteur de règle spécifique
sf code-analyzer run --rule-selector Security --workspace force-app
# Exporter vers différents formats
sf code-analyzer run --workspace force-app --output-file results.html
sf code-analyzer run --workspace force-app --output-file results.sarif