Ir al contenido

Informe de Escaneo de Seguridad

HerramientaVersiónPropósito
Salesforce Code Analyzer v5LatestAnálisis de seguridad Apex/LWC
PMD (incl. AppExchange rules)v5Calidad de código y seguridad
ESLintv5Análisis JavaScript/LWC
RetireJSv5Bibliotecas JS vulnerables
Partner Security Portal (Checkmarx)LatestEscaneo de código fuente obligatorio
Ventana de terminal
# Instalar Salesforce CLI
npm install -g @salesforce/cli
# Instalar plugin Code Analyzer v5
sf plugins install @salesforce/plugin-code-analyzer
Ventana de terminal
# Ejecutar todas las reglas con salida HTML
sf code-analyzer run --workspace force-app --output-file docs/scan-results.html
# Ejecutar reglas específicas de AppExchange
sf code-analyzer run --rule-selector AppExchange --workspace force-app --output-file docs/scan-appexchange.html
# Ejecutar solo reglas etiquetadas como Security
sf code-analyzer run --rule-selector Security --workspace force-app --output-file docs/scan-security.html
# Fallar en High o Critical (CI/CD)
sf code-analyzer run --rule-selector AppExchange --workspace force-app --severity-threshold 2 --output-file docs/scan-appexchange.html

Mejores Prácticas de Seguridad Implementadas

Sección titulada «Mejores Prácticas de Seguridad Implementadas»
  • Verificación isCreateable() antes de INSERT
  • Verificación isUpdateable() antes de UPDATE
  • Verificación isDeletable() antes de DELETE
  • Permisos a nivel de campo mediante Permission Sets
  • Variables de enlace usadas para entrada de usuario
  • String.escapeSingleQuotes() para consultas dinámicas
  • Nombres de objetos derivados de IDs de Salesforce (no entrada de usuario)
  • with sharing en controladores principales
  • without sharing solo donde está documentado y es necesario
  • Los registros compartidos respetan la configuración OWD
  • Sin eval() o ejecución de script dinámico
  • Entrada de usuario sanitizada antes de mostrarse
  • Sin credenciales codificadas
VerificaciónEstadoNotas
Llamadas HTTPN/AEl paquete no realiza llamadas externas
Named CredentialsN/ANo usado
External ObjectsN/ANo usado
Remote Site SettingsN/ANo requerido
Violaciones CSPAprobadoSin violaciones de Content-Security-Policy
ClaseCoberturaEstado
ObjectTeamMemberController>75%Aprobado
TeamMemberWizardController>75%Aprobado
ShareRecordQueueable>75%Aprobado
SharingRecalculationBatch>75%Aprobado
ExpiredTeamMemberCleanupBatch>75%Aprobado
ObjectTeamMemberTriggerHandler>75%Aprobado
PostInstallHandler>75%Aprobado
General>75%Aprobado
Ventana de terminal
# Ejecutar todas las pruebas con cobertura
sf apex run test --code-coverage --result-format human --target-org [ORG_ALIAS]
# Ejecutar clase de prueba específica
sf apex run test --tests ObjectTeamMemberTest --code-coverage --result-format human --target-org [ORG_ALIAS]

Referencia de Comandos del Escáner (Code Analyzer v5)

Sección titulada «Referencia de Comandos del Escáner (Code Analyzer v5)»
Ventana de terminal
# Listar reglas disponibles
sf code-analyzer rules
# Listar solo reglas de AppExchange
sf code-analyzer rules --rule-selector AppExchange
# Ejecutar con selector de reglas específico
sf code-analyzer run --rule-selector Security --workspace force-app
# Exportar a varios formatos
sf code-analyzer run --workspace force-app --output-file results.html
sf code-analyzer run --workspace force-app --output-file results.sarif