Erfassen Sie Ihre Fortschritte
Trailhead-Startseite
Trailhead-Startseite

Hin zu Lightning und weg von JavaScript-Schaltflächen

Lernziele

Nachdem Sie diese Lektion abgeschlossen haben, sind Sie in der Lage, die folgenden Aufgaben auszuführen:
  • Beschreiben der Sicherheitsprobleme bei Verwenden von JavaScript
  • Auflisten gängiger Anwendungsfälle für benutzerdefinierte JavaScript-Schaltflächen

JavaScript-Schaltflächen: Auf in die Zukunft

Wir wissen, dass Sie JavaScript-Schaltflächen lieben, die Sie seit Jahren in Salesforce Classic nutzen. Vielleicht zögern Sie sogar deshalb bei der Migration zu Lightning Experience, weil JavaScript-Schaltflächen nicht unterstützt werden. Doch Lightning Experience bietet so viel mehr als Salesforce Classic, weshalb es die Zukunft darstellt. Uns ist klar, dass Sie von uns unbedingt erwarten, dass wir vorhandene Funktionalität in neue Funktionen und Benutzeroberflächen migrieren. Doch im Fall von JavaScript-Schaltflächen glauben wir, dass die Zukunft mit Lightning Experience auch ohne Unterstützung von JavaScript-Schaltflächen strahlender sein wird. In diesem Modul zeigen wir Ihnen, warum das so ist.

JavaScript-Schaltflächen und -Links sind Aktionen auf der Salesforce Classic-Benutzeroberfläche, mit deren Hilfe Sie JavaScript-Code inline erstellen können, der über einen Schaltfläche oder einen Link aufgerufen werden kann, die/der in einem Datensatz oder auf einer Listenseite eingebettet ist. Vielleicht möchten Sie neue Datensätze bei ihrer Erstellung mit Daten vorab auffüllen oder Werte in Feldern basierend auf anderer Logik aktualisieren. Oder Sie sind ein Salesforce-Partner, der benutzerdefinierte Schaltflächen für die Integration in seine Plattform nutzt.

Wenn JavaScript-Schaltflächen so nützlich sind, warum werden Sie in Lightning Experience nicht unterstützt? Weil es signifikante Sicherheitsprobleme beim Kombinieren von nicht vertrauenswürdigem JavaScript aus mehreren Quellen und von vielen Autoren mit dem Anwendungsquellcode gibt, sodass die Vertrauenswürdigkeit leidet.

Wir behandeln diese Sicherheits- und Funktionsproblematik und nennen Ihnen die Alternativen zu JavaScript-Schaltflächen, die sich für mobile und Lightning-Lösungen eignen. Wir untersuchen auch die Funktionen in Salesforce, mit deren Hilfe Sie die Funktionalität migrieren können, die Sie mithilfe benutzerdefinierter Schaltflächen entwickelt haben.

Unser Ziel ist die Lösung des Problems der clientseitigen Anpassung und Integration. Lassen Sie uns Ihnen einen neuen Denkansatz zur Funktionalität von JavaScript-Schaltflächen in Lightning Experience vorstellen.

JavaScript-Schaltflächen: Sicherheitsprobleme und Anwendungsfälle

Einer der nützlichsten Vorteile von Lightning Experience ist, dass Sie Ihre benutzerdefinierten Lightning-Komponenten zu Datensatz-, Start- und anderen Seiten hinzufügen können. Beispielsweise können Sie Ihren Accountdatensatz-Seiten eine Kartenkomponente hinzufügen. Oder Sie können für Ihre AppExchange-Anwendung eine Komponente bereitstellen, die der Startseite oder einem Opportunity-Datensatz hinzugefügt werden kann.

Doch ohne bestimmte Schutzvorrichtungen haben die Komponenten gegenseitigen Zugriff auf ihre Daten, einen freigegebenen Zugriff auf die Fenster- und Ereignisstrukturen sowie Zugriff auf beliebige clientseitige APIs. Auf die Komponente eines Partners für Konformität mit HIPAA oder zur finanziellen Auskunft kann beispielsweise eine Komponente aus einer anderen Quelle zugreifen, wenn sich beide Komponenten auf derselben Seite befinden. Wie Sie sich vorstellen können, kann dieser komponentenübergreifende Zugriff zu Sicherheits- und rechtlichen Problemen führen.

Was ist los mit Inline-JavaScript?

Bevor wir die Schutzvorrichtungen behandeln, die Salesforce für die Sicherheit von Lightning-Komponenten zu bieten hat, wollen wir auf einige Probleme mit Inline-JavaScript eingehen. JavaScript ist eine lose typisierte Programmiersprache, die ohne Plug-In von allen modernen Webbrowsern unterstützt wird. Sie kann Daten und Zustand mithilfe von Cookies und Speicher-APIs dauerhaft speichern und über den Browser auf Ereignisse, URLs und Cookies zugreifen. Was JavaScript sowohl nützlich als auch gefährlich macht, ist sein Vollzugriff auf das Dokumentobjektmodell (DOM) und Browserobjektmodell (BOM).

Bei Zugriff auf das DOM kann ein Programmierer nahezu alles in einem HTML- oder XML-Dokument ergänzen, ändern oder löschen. In den richtigen Händen ist dies nützlich, da JavaScript eine API für das Arbeiten mit Text, Datumsangaben und regulären Ausdrücken bietet. Deshalb ist es einfach, mithilfe von JavaScript-Codeausschnitten clientseitige Funktionalität hinzuzufügen, die die Standardbenutzeroberfläche verbessert. Doch dies ist auch ein erhebliches Sicherheitsrisiko, da über das Cross Site Scripting (XSS) böswillige Akteure Zugriff über JavaScript auf das DOM oder BOM erhalten und Unheil anrichten können.

Wenn eine Website dynamische Inhalte aktiviert, können Angreifer über XSS böswilligen clientseitigen Code in die Webseiten einschleusen, die von normalen Benutzern angezeigt werden. Die Angreifer können dann die Sitzung und Cookies eines Benutzers nutzen, um Skripts zum Extrahieren von Daten, Aufzeichnen von Tastaturanschlägen, Manipulieren von Formulareinträgen auszuführen und sogar auf APIs zuzugreifen.

Lightning Locker: Erhöhen der Sicherheit von Lightning-Komponenten

Die gute Nachricht ist, dass Salesforce bereits an einer Lösung zum Erhöhen der Sicherheit von Lightning-Komponenten und Einschränken des ungehinderten Zugriffs von JavaScript arbeitet. Diese Lösung heißt Lightning Locker und nutzt verschiedene Technologien und Methoden, die Folgendes verhindern sollen:
  • XSS- und ähnliche Sicherheitsprobleme
  • Uneingeschränkten DOM-Zugriff
  • Aufrufe an nicht dokumentierte/private APIs
Zugleich ermöglichen die Features von Lightning Locker Folgendes:
  • Versionsverwaltung clientseitiger APIs
  • Schnellere Sicherheitsprüfung (AppExchange)
  • Bessere JavaScript-Entwicklungsmethoden
  • Einfache Aktualisierungen von Sicherheitsfunktionen und -richtlinien

Sie wissen nun also, dass Lightning-Komponenten auf mehr Sicherheit ausgelegt sind. Doch wie können Sie von ihrer Nutzung profitieren und die Funktionalität Ihrer JavaScript-Schaltflächen in Lightning Experience neu erstellen? Wir kommen in Kürze darauf zurück. Doch lassen Sie uns zunächst anschauen, wie Sie ggf. JavaScript-Schaltflächen in Salesforce Classic nutzen.

Welche Aufgaben Kunden mithilfe von JavaScript-Schaltflächen erledigen

Wir haben viele Kunden befragt, von denen einige hunderte von JavaScript-Schaltflächen in ihren Organisationen verwenden. Wir haben auch mit Partnern über ihre Anwendungsfälle von JavaScript-Schaltflächen gesprochen. Wir haben die gesammelten Informationen in übergeordnete Kategorien unterteilt. Hier die gängigsten Anwendungsfälle für JavaScript-Schaltflächen:
  • Verwenden oder Bearbeiten von Werten in einem Datensatz vor dem Speichern
    • Überprüfen von Feldern (Sicherstellen, dass Werte aufgefüllt werden und/oder Kriterien erfüllen)
    • Vorabausfüllen von Werten basierend auf Eingaben in andere Felder
    • Umleiten zu einer Visualforce-Seite basierend auf Eingabewerten
    • Anzeigen von Bestätigungsfenstern
  • Erstellen von Datensätzen mit vorab aufgefüllten Werten
  • Auslösen von in den Flow Builder integrierten Flows
  • Ausführen eines Callouts an Salesforce oder externe APIs
  • Integrieren mit anderen Anbietern
  • Anwenden von Massenaktionen auf Datensätze in einer Liste
  • Direkte Methoden und Prozeduren über Feedbackbildschirme für Benutzer

Es gibt noch weitere Szenarien und einige Anwendungsfälle, die so spezifisch für eine Organisation sind, dass sie unmöglich kategorisiert werden können. Als Nächstes behandeln wir Features, die Sie nutzen können, um alle erwähnten Anwendungsfälle anzugehen und JavaScript-Schaltflächenfunktionalität in die mobile Salesforce-Anwendung und nach Lightning Experience zu migrieren.