Skip to content

Seguridad

Mecanismos de seguridad, modelo de permisos y aplicación de CRUD/FLS.

Modelo de Permisos

Permission Sets

PERMISSION SETS FTS_App_Access (Administradores) App: FlexibleTeamShare Pestañas: todas visibles Apex: todas las clases Objetos: CRUD completo + MAR Team_Sharing_Config: CRUD FTS_Data_Access (Usuarios finales) ObjectTeamMember__c: CRUD Team_Sharing_Config__c: Read Apex: solo controladores Sin View/Modify All Records
Permission SetAudienciaCapacidades
FTS_App_AccessAdministradoresAcceso completo a la aplicación, todas las pestañas, todas las clases Apex, CRUD completo + Modify All Records en objetos, Team_Sharing_Config CRUD
FTS_Data_AccessUsuarios FinalesObjectTeamMember__c CRUD, Team_Sharing_Config__c Read, solo clases Apex de controlador, sin View/Modify All Records

Lógica de Control de Acceso

¿Quién puede gestionarmiembros del equipo? No No No ¿Administradordel Sistema? ¿Propietariodel Registro? ¿Miembro del Equipo conRole = Managero Owner? PERMITIDO DENEGADO

El método isCurrentUserManager() determina quién puede gestionar miembros del equipo:

  1. Administradores del Sistema — siempre permitido
  2. Propietarios de Registros — siempre permitido
  3. Miembros del equipo con rol Manager/Owner — permitido
  4. Todos los demás — denegado

Aplicación de CRUD/FLS

COMPROBACIONES CRUD/FLS Create isCreateable() Update isUpdateable() +isCurrentUserManager() Delete isDeletable() +isCurrentUserManager() Read WITH USER_MODE MODO DE EJECUCIÓN Aplicado en el controlador Acceso elevado(without sharing) Respeta OWD/Sharing
OperaciónVerificación de SeguridadImplementación
Create Team MemberSchema.sObjectType.ObjectTeamMember__c.isCreateable()Aplicado en el controlador
Update Team MemberisUpdateable() + isCurrentUserManager()Acceso elevado (without sharing) después de autorización
Delete Team MemberisDeletable() + isCurrentUserManager()Acceso elevado (without sharing) después de autorización
Read Team MembersWITH USER_MODE / sharing modelRespeta OWD/sharing

Validación de Entrada

EntradaValidaciónUbicación
recordIdNo en blanco, formato de ID de Salesforce válidoControlador
userIdNo en blanco, ID de Usuario válidoControlador
accessLevelNo en blanco, valor de picklist válidoControlador + Picklist
roleNo en blanco, valor de picklist válidoControlador + Picklist
endDateDebe ser fecha futura o nulaControlador + Validation Rule
objectApiNameDerivado del ID de Salesforce (no entrada de usuario)Controlador

Validation Rules

ReglaObjetoDescripción
End_Date_Cannot_Be_PastObjectTeamMember__cPreviene establecer fecha de finalización en el pasado

Mapeo de Nivel de Acceso

ObjectTeamMember__cAccess_Level__c Read Only Read/Write [Object]ShareAccessLevel Read Edit

Descripción General Completa de Seguridad

PERMISSION SETS FTS_App_AccessAdministradores FTS_Data_AccessUsuarios finales CONTROL DE ACCESO System Admin Record Owner Rol Manager/Owner MODELO DE COMPARTICIÓN ObjectTeamMember__Share [Object]Share NIVELES DE ACCESO Read Only → Read Read/Write → Edit

Mejores Prácticas de Seguridad Implementadas

ControlEstadoImplementación
Verificaciones CRUD en controladoresImplementadoisAccessible(), isCreateable(), isUpdateable(), isDeletable()
Aplicación de FLSImplementadoPermission Sets controlan el acceso a campos
Prevención de inyección SOQLImplementadoVariables de enlace para entrada de usuario, lista blanca para nombres de objetos
Sharing modelImplementadowith sharing en controladores, without sharing solo donde está documentado
Validación de entradaImplementadoVerificaciones de nulo, validación de formato, reglas de negocio
Prevención de XSSImplementadoEl framework LWC maneja la codificación de salida

Seguridad de Integración Externa

VerificaciónResultado
Llamadas HTTPNinguna — el paquete no realiza llamadas externas
Named CredentialsNo usado
External ObjectsNo usado
Remote Site SettingsNo requerido
Violaciones CSPAprobado — sin violaciones de Content-Security-Policy