Skip to content

Sicherheit

Sicherheitsmechanismen, Berechtigungsmodell und CRUD/FLS-Durchsetzung.

Berechtigungsmodell

Permission Sets

PERMISSION SETS FTS_App_Access (Administratoren) App: FlexibleTeamShare Tabs: Alle sichtbar Apex: Alle Klassen Objekte: Volles CRUD + MAR Team_Sharing_Config: CRUD FTS_Data_Access (Endbenutzer) ObjectTeamMember__c: CRUD Team_Sharing_Config__c: Read Apex: Nur Controller Kein View/Modify All Records
Permission SetZielgruppeFähigkeiten
FTS_App_AccessAdministratorenVollständiger App-Zugriff, alle Tabs, alle Apex-Klassen, vollständiges CRUD + Modify All Records auf Objekten, Team_Sharing_Config CRUD
FTS_Data_AccessEndbenutzerObjectTeamMember__c CRUD, Team_Sharing_Config__c Read, nur Controller-Apex-Klassen, kein View/Modify All Records

Zugriffskontrolllogik

Wer darf Teammitgliederverwalten? Nein Nein Nein Ja Ja Ja System-administrator? Datensatz-inhaber? Teammitglied mitRolle Manageroder Owner? ERLAUBT VERWEIGERT

Die Methode isCurrentUserManager() bestimmt, wer Teammitglieder verwalten kann:

  1. System Administrators — immer erlaubt
  2. Record Owners — immer erlaubt
  3. Teammitglieder mit Manager/Owner-Rolle — erlaubt
  4. Alle anderen — verweigert

CRUD/FLS-Durchsetzung

CRUD/FLS-PRÜFUNGEN Create isCreateable() Update isUpdateable() +isCurrentUserManager() Delete isDeletable() +isCurrentUserManager() Read WITH USER_MODE AUSFÜHRUNGSMODUS Im Controller erzwungen Erhöhter Zugriff(without sharing) Beachtet OWD/Sharing
OperationSicherheitsprüfungImplementierung
Create Team MemberSchema.sObjectType.ObjectTeamMember__c.isCreateable()Im Controller durchgesetzt
Update Team MemberisUpdateable() + isCurrentUserManager()Erhöhter Zugriff (without sharing) nach Autorisierung
Delete Team MemberisDeletable() + isCurrentUserManager()Erhöhter Zugriff (without sharing) nach Autorisierung
Read Team MembersWITH USER_MODE / FreigabemodellRespektiert OWD/Freigabe

Eingabevalidierung

EingabeValidierungOrt
recordIdNicht leer, gültiges Salesforce-ID-FormatController
userIdNicht leer, gültige User-IDController
accessLevelNicht leer, gültiger Picklist-WertController + Picklist
roleNicht leer, gültiger Picklist-WertController + Picklist
endDateMuss zukünftiges Datum oder null seinController + Validation Rule
objectApiNameAbgeleitet von Salesforce-ID (keine Benutzereingabe)Controller

Validation Rules

RegelObjektBeschreibung
End_Date_Cannot_Be_PastObjectTeamMember__cVerhindert Setzen des Enddatums in der Vergangenheit

Zugriffsebenenmapping

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

Vollständige Sicherheitsübersicht

PERMISSION SETS FTS_App_AccessAdministratoren FTS_Data_AccessEndbenutzer ZUGRIFFSKONTROLLE System Admin Record Owner Rolle Manager/Owner SHARING-MODELL ObjectTeamMember__Share [Object]Share ZUGRIFFSEBENEN Read Only → Read Read/Write → Edit

Implementierte Sicherheits-Best-Practices

KontrolleStatusImplementierung
CRUD-Prüfungen in ControllernImplementiertisAccessible(), isCreateable(), isUpdateable(), isDeletable()
FLS-DurchsetzungImplementiertPermission Sets steuern Feldzugriff
SOQL-Injection-PräventionImplementiertBind-Variablen für Benutzereingaben, Whitelist für Objektnamen
FreigabemodellImplementiertwith sharing auf Controllern, without sharing nur wo dokumentiert
EingabevalidierungImplementiertNull-Prüfungen, Formatvalidierung, Geschäftsregeln
XSS-PräventionImplementiertLWC-Framework verarbeitet Output-Encoding

Sicherheit externer Integrationen

PrüfungErgebnis
HTTP-CalloutsKeine — Paket führt keine externen Aufrufe durch
Named CredentialsNicht verwendet
External ObjectsNicht verwendet
Remote Site SettingsNicht erforderlich
CSP-VerletzungenBestanden — keine Content-Security-Policy-Verletzungen