Erste Schritte mit Lightning-Websicherheit
Lernziele
Nachdem Sie diese Lektion abgeschlossen haben, sind Sie in der Lage, die folgenden Aufgaben auszuführen:
- Beschreiben von Lightning-Websicherheit
- Nennen der Vorteile von Lightning-Websicherheit
Was ist Lightning-Websicherheit?
Wenn Administratoren und Entwickler neue Funktionen zu ihren Organisationen hinzufügen, hat die Sicherheit der Organisation höchste Priorität. Sowohl vordefinierte Komponenten (von Salesforce oder AppExchange) als auch benutzerdefinierte Komponenten können Risiken bergen, sodass Schadsoftware eine Organisation kompromittieren kann.
Die Sicherheit sollte jedoch nicht zu Lasten der Leistung gehen oder funktionale Einschränkungen bedeuten. Salesforce hat daher Lightning-Websicherheit (LWS) entwickelt, damit Sie Ihre Organisation schützen können. LWS erweitert die Funktionalität durch neue Anwendungsfälle für Lightning-Komponenten. Doch bevor wir näher auf LWS eingehen, werfen wir zunächst einen kurzen Blick auf Lightning Locker, den Vorgänger von LWS.
Lightning Locker
Wenn Sie bereits mit Lightning-Komponenten arbeiten, kennen Sie Lightning Locker schon. Lightning Locker ist der Standard, mit dem Sie Ihre Lightning- und Aura-Komponenten schützen, indem Namespaces für Lightning-Komponenten in eigenen Containern isoliert und Best Practices für die Programmierung umgesetzt werden. Beispielsweise stammt eine Komponente namens c-editor
aus dem Namespace c und ist von Komponenten im Namespace ltngmu
isoliert.
Lightning Locker wird nicht sofort ausgemustert. LWS für Lightning-Webkomponenten (allgemein verfügbar) und LWS für Aura (Beta) werden standardmäßig für Organisationen aktiviert, die keine benutzerdefinierten Lightning-Webkomponenten oder Aura-Komponenten enthalten. Mit dieser Aktivierung wird die schrittweise Einführung der in Spring '22 angekündigten LWS-Architektur fortgesetzt. Lightning-Websicherheit ist die Zukunftstechnologie für Komponentensicherheit und -leistung. Je früher Sie auf LWS umsteigen, desto sicherer und schneller wird Ihre Organisation sein.
Die nächste Generation: Lightning-Websicherheit
Lightning-Websicherheit ist eine Neuerung für Lightning-Komponenten. Wenn Sie Lightning-Komponenten verwenden, wissen Sie, dass Ihre Salesforce-Seiten Komponenten aus beliebig vielen anderen Unternehmen enthalten können. Und Ihre benutzerdefinierten Komponenten leben in friedlicher Koexistenz mit von Salesforce erstellten Komponenten sowie in Anwendungen in AppExchange, die Sie entwickeln oder nutzen
Wenn es in Ihrer Umgebung viele Komponenten aus unterschiedlichen Quellen gibt, zu denen auch Bibliotheken von Drittanbietern gehören, die aus statischen Ressourcen geladen werden, dann öffnet dies potenziellen Bedrohungen Tür und Tor. Böswilliger Code in einer Komponente kann auf globale Objekte wie Fenster, Dokumente oder Elemente zugreifen, zugehörige Ressourcen oder Daten abrufen und in Ihrer Organisation Schaden anrichten.
Sicherheit durch JavaScript-Sandboxes
Die Architektur in Lightning-Websicherheit funktioniert in Ihrer Umgebung so, dass jede Komponente in einer für ihren Namespace spezifischen JavaScript-Sandbox isoliert wird. So kann böswilliger Code in einer Komponente nicht auf die Ressourcen anderer Komponenten außerhalb ihres Namespace zugreifen.
Anwendungsfälle für Lightning-Websicherheit
Während sowohl Lightning Locker als auch Lightning-Websicherheit nicht sichere APIs blockieren oder ihr Verhalten ändern, bietet LWS die folgenden zusätzlichen Anwendungsmöglichkeiten, die die Leistung und Sicherheit erweitern.
Namespace-übergreifende Komponentenverwendung
Lightning-Webkomponenten können Komponenten oder Module aus verschiedenen Namespaces importieren und sie mittels Zusammensetzung oder Erweiterung verwenden. Komponenten sind in der JavaScript-Sandbox für ihren eigenen Namespace transparent isoliert. Sie werden nichts davon bemerken.
Interaktionen mit globalen Objekten
Bei Lightning Locker sind sichere Wrapper zum Isolieren von Komponenten erforderlich, was die Leistung einschränkt und die Verwendung bestimmter Bibliotheken von Drittanbietern verhindert. Lightning-Websicherheit macht sichere Wrapper unnötig, da es Komponenten blockiert bzw. im Verhalten verändert, bei denen es unsicheren Code erkennt. Dies geschieht in den Sandboxes, in denen sich der Code befindet, sodass er keine Schwierigkeiten machen kann. Sie haben dadurch mehr Freiheit und Flexibilität bei der Verwendung von Drittanbieterbibliotheken in Ihren Komponenten.
Zugriff auf iframe-Inhalte und -Identität
Lightning Web Security ermöglicht Lightning-Webkomponenten den Zugriff auf Inhalte in iframe-Elementen, sodass Sie andere Webentwicklungsfunktionen nutzen können, die zuvor von Lightning Locker gesperrt waren.
Bessere Leistung
Da keine sicheren Wrapper notwendig sind, wird Code in Namespace-spezifischen JavaScript-Sandboxes schneller ausgeführt.
Bessere Unterstützung von JavaScript-Drittanbieterbibliotheken
In LWS können Bibliotheken beispielsweise Objekte ändern, da sie in ihren eigenen Namespace-spezifischen JavaScript-Sandboxes ausgeführt werden. Diese Änderungen an globalen Objekten wirken sich nicht auf Komponenten in anderen Namespaces aus.
Lightning-Websicherheit entwickelt sich mit JavaScript
LWS orientiert sich an den neuesten TC39-Standards, die sich mit Browserplattformen entwickeln, so dass es durch technologische Änderungen nicht veraltet.
In der nächsten Lektion befassen wir uns eingehender mit der Funktionsweise von Lightning-Websicherheit. Außerdem sehen wir uns an, wie Sie feststellen, ob sich LWS auf Komponenten auswirken wird, und wie Sie LWS in Ihrer Organisation aktivieren.