Skip to content

Bezpieczeństwo

Mechanizmy bezpieczeństwa, model uprawnień i egzekwowanie CRUD/FLS.

Model uprawnień

Permission Sets

PERMISSION SETS FTS_App_Access (Administratorzy) App: FlexibleTeamShare Tabs: Wszystkie widoczne Apex: Wszystkie klasy Objects: Pełne CRUD + MAR Team_Sharing_Config: CRUD FTS_Data_Access (Użytkownicy końcowi) ObjectTeamMember__c: CRUD Team_Sharing_Config__c: Read Apex: Tylko kontrolery Brak View/Modify All Records
Permission SetOdbiorcyMożliwości
FTS_App_AccessAdministratorzyPełny dostęp do aplikacji, wszystkie zakładki, wszystkie klasy Apex, pełne CRUD + Modify All Records na obiektach, CRUD Team_Sharing_Config
FTS_Data_AccessUżytkownicy końcowiCRUD ObjectTeamMember__c, odczyt Team_Sharing_Config__c, tylko klasy kontrolerów Apex, brak View/Modify All Records

Logika kontroli dostępu

Kto może zarządzaćczłonkami zespołu? Nie Nie Nie Tak Tak Tak Administratorsystemu? Właścicielrekordu? Członek zespołu zrolą Managerlub Owner? DOZWOLONE ZABRONIONE

Metoda isCurrentUserManager() określa, kto może zarządzać członkami zespołu:

  1. Administratorzy systemu — zawsze dozwolone
  2. Właściciele rekordów — zawsze dozwolone
  3. Członkowie zespołu z rolą Manager/Owner — dozwolone
  4. Wszyscy pozostali — zabronione

Egzekwowanie CRUD/FLS

SPRAWDZENIA CRUD/FLS Create isCreateable() Update isUpdateable() +isCurrentUserManager() Delete isDeletable() +isCurrentUserManager() Read WITH USER_MODE TRYB WYKONANIA Egzekwowane w kontrolerze Podwyższony dostęp(without sharing) Respektuje OWD/Sharing
OperacjaSprawdzenie bezpieczeństwaImplementacja
Utwórz członka zespołuSchema.sObjectType.ObjectTeamMember__c.isCreateable()Egzekwowane w kontrolerze
Aktualizuj członka zespołuisUpdateable() + isCurrentUserManager()Podwyższony dostęp (without sharing) po autoryzacji
Usuń członka zespołuisDeletable() + isCurrentUserManager()Podwyższony dostęp (without sharing) po autoryzacji
Odczyt członków zespołuWITH USER_MODE / model udostępnianiaRespektuje OWD/sharing

Walidacja danych wejściowych

Dane wejścioweWalidacjaLokalizacja
recordIdNie puste, prawidłowy format ID SalesforceKontroler
userIdNie puste, prawidłowe ID użytkownikaKontroler
accessLevelNie puste, prawidłowa wartość z listy wyboruKontroler + Picklist
roleNie puste, prawidłowa wartość z listy wyboruKontroler + Picklist
endDateMusi być datą przyszłą lub nullKontroler + Validation Rule
objectApiNameWyprowadzane z ID Salesforce (nie dane wejściowe użytkownika)Kontroler

Reguły walidacji

RegułaObiektOpis
End_Date_Cannot_Be_PastObjectTeamMember__cZapobiega ustawieniu daty końcowej w przeszłości

Mapowanie poziomu dostępu

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

Pełny przegląd bezpieczeństwa

PERMISSION SETS FTS_App_AccessAdministratorzy FTS_Data_AccessUżytkownicy końcowi KONTROLA DOSTĘPU System Admin Record Owner Rola Manager/Owner MODEL UDOSTĘPNIANIA ObjectTeamMember__Share [Object]Share POZIOMY DOSTĘPU Read Only → Read Read/Write → Edit

Zaimplementowane najlepsze praktyki bezpieczeństwa

KontrolaStatusImplementacja
Sprawdzenia CRUD w kontrolerachZaimplementowaneisAccessible(), isCreateable(), isUpdateable(), isDeletable()
Egzekwowanie FLSZaimplementowanePermission Sets kontrolują dostęp do pól
Zapobieganie wstrzykiwaniu SOQLZaimplementowaneBind variables dla danych wejściowych użytkownika, whitelist dla nazw obiektów
Model udostępnianiaZaimplementowanewith sharing na kontrolerach, without sharing tylko tam, gdzie udokumentowane
Walidacja danych wejściowychZaimplementowaneSprawdzenia null, walidacja formatu, reguły biznesowe
Zapobieganie XSSZaimplementowaneFramework LWC obsługuje kodowanie wyjścia

Bezpieczeństwo integracji zewnętrznych

SprawdzenieWynik
Wywołania HTTPBrak — pakiet nie wykonuje wywołań zewnętrznych
Named CredentialsNie używane
External ObjectsNie używane
Remote Site SettingsNiewymagane
Naruszenia CSPZaliczone — brak naruszeń Content-Security-Policy