
Tekunda Team

Tekunda Team

Eine Checkliste für die Salesforce Security Review ist nur nützlich, wenn sie eine Reihenfolge hat. Die meisten Einreichungen scheitern an einer kurzen, vorhersehbaren Liste, und die Zugriffskontrolle steht ganz oben. Arbeiten Sie in dieser Reihenfolge: Zugriff im User Mode im Code erzwingen, die drei Scanner-Berichte triagieren, dann die Einreichungsunterlagen und eine Testumgebung zusammenstellen, die der Reviewer wirklich nutzen kann. Salesforce rechnet mit 4 bis 5 Wochen pro Review, eine Ablehnung kostet Sie also einen Release-Zyklus und keinen Nachmittag.
Tekunda hat Managed Packages in Gesundheitswesen, Logistik und Fertigung durch die Review gebracht. Was folgt, ist die Reihenfolge, in der wir arbeiten, keine Prozessbeschreibung. Den gesamten Einreichungsweg beschreibt How ISVs Pass the Salesforce AppExchange Security Review.
Drei Dinge haben sich dieses Jahr verschoben, und ältere Checklisten kennen keines davon.
with sharing, und
WITH SECURITY_ENFORCED ist entfernt, sodass eine Klasse, die es auf
v67.0 noch nutzt, nicht kompiliert. Ausnahme sind Trigger: Sie laufen immer im
System Mode.
Salesforce stellt klar, dass alle Komponenten und Dienste Ihrer Lösung geprüft werden können, egal wo sie laufen. Das umfasst das Package, jeden aufgerufenen Webservice, jede Site, die Salesforce-Daten speichert, und jeden mobilen oder Desktop-Client. Legen Sie den Package-Typ fest, bevor Sie Code reparieren, denn er bestimmt, was Sie hochladen; der Artikel Salesforce Packaging Models for ISVs: 1GP vs 2GP vs Unmanaged behandelt diese Wahl.
Arbeiten Sie von oben nach unten. Die oberen Punkte sind zugleich die häufigsten Befunde und die teuersten beim nachträglichen Einbau, und deshalb verschiebt sich eine Einreichung um einen Zyklus, wenn man sie bis zuletzt liegen lässt.
WITH USER_MODE bei SOQL und
AccessLevel.USER_MODE bei Database-Aufrufen, und ersetzen
Sie verbliebenes WITH SECURITY_ENFORCED, bevor Sie die API-Version
anheben.
@AuraEnabled-Methode aufgerufen wird, unbemerkt
ohne Sharing laufen kann. Deklarieren Sie with sharing,
without sharing oder inherited sharing explizit auf jeder
Klasse, auch auf inneren und Utility-Klassen, damit der Reviewer nie klären muss,
welcher Default gilt.
escape="false",
lwc:dom="manual" oder innerHTML auf die Seite gelangt, muss
vorher bereinigt werden, nicht nachher.
System.debug. Reviewer erwarten stattdessen Named Credentials
und geschützte Custom Metadata.
Secure und HttpOnly. Reviewer prüfen die Site, die
Sie ihnen geben, nicht die, die Sie beschreiben.
Sie müssen einen Salesforce-Code-Analyzer-Bericht, einen Bericht des Source Scanners im Partner Security Portal und einen DAST-Bericht beilegen. Die Messlatte ist nicht null Befunde, und sie unterscheidet sich je Scanner:
Erzeugen Sie den Code-Analyzer-v5-Bericht mit dem AppExchange-Regelselektor, damit er dem entspricht, was der Reviewer erwartet. Bei einer komplexen Codebasis kann der Lauf Stunden dauern:
sf code-analyzer run --rule-selector AppExchange --rule-selector
Recommended:Security --output-file CodeAnalyzerReport.html
Welche Scans verpflichtend sind, hat sich mehrfach geändert. Prüfen Sie daher die aktuellen Scanner-Anforderungen, bevor Sie etwas erzeugen.
In unseren Einreichungen tauchen vier Kategorien oft genug als echte False Positives auf, dass man sie einplanen sollte: Zugriffskontroll-Befunde zu Code, der den User Mode bereits erzwingt, Sharing-Befunde zu Klassen, die nur aus einem Kontext mit bereits angewendetem Sharing betreten werden, Befunde zu veralteten Bibliotheken, die auf eine Versionszeichenfolge in einer mitgelieferten Static Resource anschlagen, und Reflected Cross-Site-Scripting-Befunde zu Parametern, die nie das DOM erreichen.
Recht zu haben reicht allerdings nicht. Das Dokument entscheidet. Salesforce verlangt ein Dokument, das erklärt, warum jeder markierte Punkt kein Sicherheitsrisiko darstellt und sagt, Sie sollen konkret beschreiben, wie Sie sich gegen die angezeigte Schwachstelle schützen. Geben Sie jedem Befund einen eigenen Eintrag: Scanner und Regel-ID, Datei und Zeile, ein Satz zum Datenpfad, die genaue schützende Kontrolle und wo diese im Package liegt. Einzeilige Abweisungen kommen als Rückfragen zurück, und Rückfragen kosten Wochen. Zum Begründungsformat und zu den Fehlern, die es scheitern lassen, siehe False Positives für die Salesforce Security Review dokumentieren.
Die Review starten Sie dann in der Publishing Partner Console: Öffnen Sie den Tab Technologies, wählen Sie bei Ihrer Lösung Start Review und füllen Sie vor der Zahlung die Abschnitte Kontakte, technische Details, Dokumentation und Testumgebung aus.
Salesforce gibt an, dass eine Lösung typischerweise 4 bis 5 Wochen für die Review braucht und dass für jede kostenpflichtige Lösung eine Gebühr von 999 $ anfällt für die erste Einreichung und jeden weiteren Versuch. Findet das Team Schwachstellen, beheben Sie sie und reichen erneut ein, was als weiterer Versuch zählt. Salesforce vermerkt außerdem, dass die meisten Einreichungen im zweiten Versuch bestehen. Beides spricht für dasselbe: Erledigen Sie die Arbeit an der Zugriffskontrolle zuerst, denn die günstigste Einreichung ist die, die Sie nur einmal machen müssen.
Möchten Sie die Review lieber Leuten überlassen, die sie schon bestanden haben? Tekunda bietet als Salesforce-Partner Vorbereitung auf die AppExchange Security Review an. Wenn Sie noch abwägen, ob Sie externe Hilfe holen, lesen Sie Was ein Salesforce PDO macht, und wann Sie einen beauftragen.
Müssen kostenlose Apps durch die Security Review?
Ja. Eine Lösung muss die Review bestehen, bevor sie auf dem Marktplatz gelistet wird. Die von Salesforce dokumentierte Gebühr von 999 $ gilt für kostenpflichtige Lösungen.
Heißt API-Version 67.0, dass ich CRUD-, FLS- und Sharing-Arbeit überspringen kann?
Nein. Die neuen Defaults gelten nur für Klassen, die mit v67.0 oder höher kompiliert sind, und Trigger laufen weiterhin im System Mode. Deklarieren Sie Zugriffsmodi und Sharing explizit, damit der Reviewer sie Zeile für Zeile prüfen kann.
Reicht Salesforce Code Analyzer allein?
Nein. Sie brauchen außerdem den Bericht des Source Scanners im Partner Security Portal, und jeder externe Endpunkt, den Ihre App aufruft, braucht einen eigenen DAST-Bericht.
Ändert eine Agentforce- oder agentenbasierte App die Checkliste?
Es gilt dieselbe Review, aber jeder externe Dienst, den Ihr Agent aufrufen kann, muss beschrieben und gescannt werden. Siehe AppExchange Security Review für agentische Apps: was anders ist.
Ist die Security Review ein einmaliges Ereignis?
Nein. Gelistete Lösungen werden typischerweise einmal im Jahr erneut geprüft, und Salesforce kann jederzeit eine Review verlangen. Neue Package-Versionen nutzen eine Bestätigung in der Partner Console statt einer neuen Review, also behalten Sie die Checkliste als festes Release-Gate.