Raport skanowania bezpieczeństwa
Używane narzędzia skanowania
Dział zatytułowany „Używane narzędzia skanowania”| Narzędzie | Wersja | Przeznaczenie |
|---|---|---|
| Salesforce Code Analyzer v5 | Najnowsza | Analiza bezpieczeństwa Apex/LWC |
| PMD (w tym reguły AppExchange) | v5 | Jakość kodu i bezpieczeństwo |
| ESLint | v5 | Analiza JavaScript/LWC |
| RetireJS | v5 | Podatne biblioteki JS |
| Partner Security Portal (Checkmarx) | Najnowsza | Obowiązkowe skanowanie źródła |
Jak wygenerować raporty skanowania
Dział zatytułowany „Jak wygenerować raporty skanowania”Wymagania wstępne
Dział zatytułowany „Wymagania wstępne”# Zainstaluj Salesforce CLInpm install -g @salesforce/cli
# Zainstaluj wtyczkę Code Analyzer v5sf plugins install @salesforce/plugin-code-analyzerUruchom pełne skanowanie
Dział zatytułowany „Uruchom pełne skanowanie”# Uruchom wszystkie reguły z wyjściem HTMLsf code-analyzer run --workspace force-app --output-file docs/scan-results.html
# Uruchom reguły specyficzne dla AppExchangesf code-analyzer run --rule-selector AppExchange --workspace force-app --output-file docs/scan-appexchange.html
# Uruchom tylko reguły oznaczone jako Securitysf code-analyzer run --rule-selector Security --workspace force-app --output-file docs/scan-security.html
# Niepowodzenie przy High lub Critical (CI/CD)sf code-analyzer run --rule-selector AppExchange --workspace force-app --severity-threshold 2 --output-file docs/scan-appexchange.htmlZaimplementowane najlepsze praktyki bezpieczeństwa
Dział zatytułowany „Zaimplementowane najlepsze praktyki bezpieczeństwa”Egzekwowanie CRUD/FLS
Dział zatytułowany „Egzekwowanie CRUD/FLS”- Sprawdzenie
isCreateable()przed INSERT - Sprawdzenie
isUpdateable()przed UPDATE - Sprawdzenie
isDeletable()przed DELETE - Uprawnienia na poziomie pól przez Permission Sets
Zapobieganie wstrzykiwaniu SOQL
Dział zatytułowany „Zapobieganie wstrzykiwaniu SOQL”- Bind variables używane dla danych wejściowych użytkownika
String.escapeSingleQuotes()dla zapytań dynamicznych- Nazwy obiektów wyprowadzane z ID Salesforce (nie danych wejściowych użytkownika)
Zgodność z modelem udostępniania
Dział zatytułowany „Zgodność z modelem udostępniania”with sharingna głównych kontrolerachwithout sharingtylko tam, gdzie udokumentowane i niezbędne- Rekordy udostępnień respektują ustawienia OWD
Bezpieczeństwo LWC
Dział zatytułowany „Bezpieczeństwo LWC”- Brak
eval()ani dynamicznego wykonywania skryptów - Dane wejściowe użytkownika oczyszczane przed wyświetleniem
- Brak zakodowanych poświadczeń
Bezpieczeństwo integracji zewnętrznych
Dział zatytułowany „Bezpieczeństwo integracji zewnętrznych”| Sprawdzenie | Status | Uwagi |
|---|---|---|
| Wywołania HTTP | N/A | Pakiet nie wykonuje wywołań zewnętrznych |
| Named Credentials | N/A | Nie używane |
| External Objects | N/A | Nie używane |
| Remote Site Settings | N/A | Niewymagane |
| Naruszenia CSP | Zaliczone | Brak naruszeń Content-Security-Policy |
Pokrycie testów Apex
Dział zatytułowany „Pokrycie testów Apex”| Klasa | Pokrycie | Status |
|---|---|---|
| ObjectTeamMemberController | >75% | Zaliczone |
| TeamMemberWizardController | >75% | Zaliczone |
| ShareRecordQueueable | >75% | Zaliczone |
| SharingRecalculationBatch | >75% | Zaliczone |
| ExpiredTeamMemberCleanupBatch | >75% | Zaliczone |
| ObjectTeamMemberTriggerHandler | >75% | Zaliczone |
| PostInstallHandler | >75% | Zaliczone |
| Ogółem | >75% | Zaliczone |
Jak uruchomić testy z pokryciem
Dział zatytułowany „Jak uruchomić testy z pokryciem”# Uruchom wszystkie testy z pokryciemsf apex run test --code-coverage --result-format human --target-org [ORG_ALIAS]
# Uruchom konkretną klasę testowąsf apex run test --tests ObjectTeamMemberTest --code-coverage --result-format human --target-org [ORG_ALIAS]Referencja poleceń skanera (Code Analyzer v5)
Dział zatytułowany „Referencja poleceń skanera (Code Analyzer v5)”# Lista dostępnych regułsf code-analyzer rules
# Lista tylko reguł AppExchangesf code-analyzer rules --rule-selector AppExchange
# Uruchom z konkretnym selektorem regułsf code-analyzer run --rule-selector Security --workspace force-app
# Eksport do różnych formatówsf code-analyzer run --workspace force-app --output-file results.htmlsf code-analyzer run --workspace force-app --output-file results.sarif