Eingabehilfen

Inhalt

Sicherheitsänderungen in Flash Player 8

Lokale Sandboxen

In diesem Abschnitt werden die lokalen Sandboxen beschrieben, in die SWF-Dateien platziert werden.

Berechtigungen

In Flash Player sind die folgenden Berechtigungstypen für lokale Dateien definiert:

  • Lokal lesen. Diese Berechtigung ist für SWF-Dateien in der Sandbox Lokal mit Dateisystem verfügbar, nicht aber für SWF-Dateien in der Sandbox Lokal mit Netzwerk. Die Berechtigung ermöglicht das Laden von Daten aus externen Dateien in ActionScript-Variablen, wobei die Daten aus Dateien stammen, die sich im lokalen Dateisystem befinden. Beispiele für lokale URLs sind im Abschnitt "Betroffener Inhalt" aufgelistet. Die folgenden Ladevorgänge für Daten sind betroffen:

    • XML.load, XML.sendAndLoad
    • LoadVars.load, LoadVars.sendAndLoad, loadVariables, loadVariablesNum, MovieClip.loadVariables
    • Import eines Symbols aus der Bibliothek einer anderen SWF-Datei
  • Im Netzwerk senden. Diese Berechtigung ist für SWF-Dateien in der Sandbox Lokal mit Netzwerk verfügbar, nicht aber für SWF-Dateien in der Sandbox Lokal mit Dateisystem. Diese Berechtigung ermöglicht das Senden von Daten oder Anforderungen an Internet-Adressen oder HTTP-Server. Dazu gehören die folgenden Vorgänge mit nicht lokalen URLs:

    • XML.load, XML.send, XML.sendAndLoad
    • LoadVars.load, LoadVars.send, LoadVars.sendAndLoad, loadVariables, loadVariablesNum, MovieClip.loadVariables
    • XMLSocket.connect
    • NetConnection.call (Flash Remoting)
    • Import eines Symbols aus der Bibliothek einer anderen SWF-Datei
    • getURL, MovieClip.getURL
    • loadMovie, loadMovieNum, MovieClip.loadMovie, MovieClipLoader.loadClip
    • Sound.loadSound
  • Im Netzwerk lesen. SWF-Dateien in der Sandbox Lokal mit Netzwerk können Vorgänge mit der Berechtigung Im Netzwerk senden ausführen. Einige Vorgänge des Typs Im Netzwerk senden sind unidirektional, das heißt, es werden Daten gesendet, aber keine Antworten empfangen; andere sind Anforderungen, auf die eine Antwort zurück gesendet wird. Letztere sind Vorgänge des Typs Im Netzwerk lesen, eine untergeordnete Gruppe von Im Netzwerk senden. SWF-Dateien in der Sandbox Lokal mit Netzwerk können Vorgänge des Typs Im Netzwerk lesen versuchen, wobei jedoch eine Berechtigung von der Ursprungsdomäne der Daten erforderlich ist. Dies sind die folgenden Vorgänge mit nicht lokalen URLs:

    • XML.load, XML.sendAndLoad
    • LoadVars.load, LoadVars.sendAndLoad, loadVariables, loadVariablesNum, MovieClip.loadVariables
    • XMLSocket.connect
    • NetConnection.call (Flash Remoting)
    • Import eines Symbols aus der Bibliothek einer anderen SWF-Datei
  • SWF-HTML. Dies sind Vorgänge, die das Scripting zwischen SWF- und HTML-Dateien ermöglichen. Bei den drei lokalen Sandboxen verfügen nur lokale vertrauenswürdige Dateien über die SWF-HTML-Berechtigung, um potenzielle Diskrepanzen zwischen den Sicherheitsmodellen von Flash Player und Webbrowsern zu vermeiden. Zu diesen Vorgängen gehören:

    • SWF-zu-HTML-Vorgänge:

      fscommand
      getURL("javascript:...")
      ExternalInterface.call
                
    • HTML-zu-SWF-Vorgänge:

      Die JavaScript-API* (SetVariable, GotoFrame usw.)
      Aufruf einer mit ExternalInterface.addCallback erstellten Rückruffunktion

SWF-Dateien in die Sandbox "Lokal mit Netzwerk" platzieren

Eine lokale SWF-Datei wird in diese Sandbox platziert, wenn sie das Flag UseNetwork enthält. Dieses Flag kann zwar in jede SWF-Datei jeder Version platziert werden, ist jedoch nur ab Flash Player 8 von Bedeutung. Das Flag wird mit zwei Verfahren festgelegt:

  • Wählen Sie bei der Veröffentlichung in Flash 8 im Dialogfeld Einstellungen für Veröffentlichungen die Registerkarte Flash aus, suchen Sie die Option Sicherheit bei lokaler Wiedergabe im unteren Bereich des Dialogfelds, und wählen Sie Nur auf Netzwerk zugreifen (siehe Abbildung 1).

    Sicherheit bei lokaler Wiedergabe nur für Zugriff auf Netzwerk eingestellt

    Abbildung 1. Sicherheit bei lokaler Wiedergabe nur für Zugriff auf Netzwerk eingestellt

  • Wenn Sie nicht über Flash 8 verfügen oder lieber mit bereits veröffentlichten SWF-Dateien arbeiten anstatt sie neu zu veröffentlichen, können Sie das Befehlszeilendienstprogramm Flash Local Content Updater verwenden, das unter macromedia.com kostenlos zum Download bereitsteht*. Dieses Dienstprogramm kann das UseNetwork-Flag für eine oder mehrere SWF-Dateien hinzufügen und entfernen oder überprüfen, ob das Flag vorhanden ist. Local Content Updater ist für Windows, Mac OS X und Linux sowie als Quellcode verfügbar.

Das UseNetwork-Flag betrifft weder SWF-Dateien, die über HTTP geladen werden und immer in Remote-Sandboxen platziert werden, noch SWF-Dateien, die vom Benutzer als vertrauenswürdig eingestuft wurden und immer in der lokalen vertrauenswürdigen Sandbox platziert werden. Das UseNetwork-Flag wirkt sich nur auf SWF-Dateien aus, die sonst in der Sandbox Lokal mit Dateisystem platziert würden.

Dateien zur Platzierung in der lokalen vertrauenswürdigen Sandbox konfigurieren

Eine lokale SWF-Datei (oder HTML-Datei) wird in dieser Sandbox platziert, wenn sie sich in einem lokalen Pfad befindet, der in der lokalen Konfiguration des Benutzers als vertrauenswürdig eingestuft wurde. Es ist möglich, die Pfade einzelner Dateien oder ganze Verzeichnisse als vertrauenswürdig einzustufen. Im letzteren Fall werden alle Dateien und Unterverzeichnisse des ausgewählten Verzeichnisses ebenfalls als vertrauenswürdig betrachtet. Dateien lassen sich mit zwei Verfahren als vertrauenswürdig einstufen:

  • Einstellungsmanager. Benutzer können die Sicherheitseinstellungen des Einstellungsmanagers aufrufen und vertrauenswürdige Pfade in einer Liste manuell hinzufügen, bearbeiten oder entfernen (siehe Abbildung 2).

    Sicherheitseinstellungen im Einstellungsmanager von Flash Player

    Abbildung 2. Sicherheitseinstellungen im Einstellungsmanager von Flash Player

  • Mit den Optionen Fragen/Zulassen/Verweigern der Sicherheitseinstellungen können Benutzer auch global festlegen, wie Flash Player ältere SWF-Dateien verarbeiten soll (SWF-Dateien des Typs Lokal mit Dateisystem aus Version 7 und älteren Versionen). Die Standardeinstellung Fragen bewirkt, dass unzulässige Operationen verhindert werden, wobei aber ein Warndialogfeld eingeblendet wird. Bei Auswahl von Immer zulassen können alle unzulässigen Vorgänge ausgeführt werden, wodurch das Standardverhalten von Flash Player 7 wiederhergestellt wird. Diese Einstellung wirkt sich jedoch nicht auf SWF-Dateien ab Version 8 aus, da sie nur für Inhalt vorgesehen ist, der erstellt wurde, bevor die neuen Regeln für die lokale Sicherheit in Kraft traten. Immer verweigern bewirkt, dass alle unzulässigen Vorgänge verhindert werden, ohne dass ein Warndialogfeld eingeblendet wird.

    Hinweis: Die Optionen Fragen/Zulassen/Verweigern regeln nicht nur Situationen der lokalen Sicherheit, sondern auch Situationen in Bezug auf die exakte Übereinstimmung von Domänen*, die seit Flash Player 7 auftreten.

  • FlashPlayerTrust-Konfigurationsdateien. Dies sind einfache Textdateien, in denen vertrauenswürdige Pfade aufgelistet werden. Sie sollen von ausführbaren Installationsprogrammen erstellt werden. Wenn ein Installationsprogramm SWF-Dateien auf dem Computer eines Benutzers installiert, kann es auch Konfigurationsdateien installieren, mit denen die SWF-Dateien als vertrauenswürdig eingestuft werden. Bei diesem Verfahren stuft der Benutzer die einzelnen SWF-Dateien zwar nicht explizit als vertrauenswürdig ein, aber implizit durch Ausführung des Installationsprogramms. Flash Player erkennt solche Konfigurationsdateien an zwei Speicherorten: einer gilt für alle Benutzer des Computers und der andere nur für den aktuellen Benutzer. Der Speicherort für alle Benutzer erfordert Administrationsberechtigungen auf Betriebssystemebene. Dies sind die Speicherorte:

    • Windows, alle Benutzer:

      <system>\Macromed\Flash\FlashPlayerTrust

      (z. B. c:\WINNT\system32\Macromed\Flash\FlashPlayerTrust)

    • Windows, ein Benutzer:

      <Anwendungsdaten>\Macromedia\Flash Player\#Security\FlashPlayerTrust

      (z. B. c:\Dokumente und Einstellungen\fred\Anwendungsdaten\Macromedia\Flash Player\#Security\FlashPlayerTrust)

    • Mac OS, alle Benutzer:

      <app support>/Macromedia/FlashPlayerTrust

      (z. B. /Library/Application Support/Macromedia/FlashPlayerTrust)

    • Mac OS, ein Benutzer:

      <app data>/Macromedia/Flash Player/#Security/FlashPlayerTrust

      (z. B. /Users/fred/Library/Preferences/Macromedia/Flash Player/#Security/FlashPlayerTrust)

Bei diesen Speicherorten handelt es sich nicht um einzelne Dateien, sondern um Verzeichnisse. In diesen Verzeichnissen können beliebig viele Konfigurationsdateien gespeichert werden. Flash Player liest alle darin enthaltenen Dateien. Die Konfigurationsdateien können nicht in Unterverzeichnissen von FlashPlayerTrust gespeichert werden, sondern müssen direkt in den FlashPlayerTrust-Verzeichnissen platziert werden. Die einzelnen Konfigurationsdateien können zwar beliebig benannt werden, doch empfiehlt sich eine produktspezifische Benennung, um Namenskonflikte auszuschließen. Es ist möglich, dass die FlashPlayerTrust-Verzeichnisse nicht auf jedem System vorhanden sind; in diesem Fall müssen sie von den Installationsprogrammen erstellt werden.

Diese Dateien haben eine sehr einfache Syntax: Sie enthalten mehrere lokale Pfade, die jeweils auf einer eigenen Zeile aufgelistet werden. Leerräume und leere Zeilen sind zulässig. Die Dateien können Kommentare enthalten, die durch das Zeichen # eingeleitet werden und zum Ende der Zeile reichen. Anführungszeichen sind für Pfade, die Leerzeichen enthalten, unnötig (und verursachen Probleme).

Da in diesen Dateien Dateisystempfade aufgelistet werden, die auf manchen Computern möglicherweise andere Zeichen als ASCII enthalten, ist die Textkodierung der FlashPlayerTrust-Dateien von Bedeutung. Flash Player sucht am Anfang dieser Dateien nach Unicode-BOM-Zeichen (Byte Order Mark), erkennt UTF-8- und UTF-16-BOM-Zeichen und interpretiert den Rest der Datei als UTF-8 bzw. UTF-16. (Zahlreiche Texteditoren, wie Windows Editor und Mac TextEdit, können Unicode-Textdateien schreiben, die diese BOM-Zeichen enthalten.) Wenn Flash Player kein BOM-Zeichen am Anfang einer FlashPlayerTrust-Datei findet, wird die Datei mit der aktuellen Codeseite (lokale Standardkodierung) des Computers interpretiert.

HTML-Sandboxen

Meist werden SWF-Dateien in Sandboxen platziert, doch Flash Player platziert auch HTML-Dateien in Sandboxen, um die Interaktion zwischen SWF- und HTML-Dateien zu steuern. Für lokale HTML-Dateien sind nur zwei Sandboxen verfügbar: vertrauenswürdig und nicht vertrauenswürdig. Lokale HTML-Dateien sind standardmäßig nicht vertrauenswürdig, können aber genau wie SWF-Dateien als vertrauenswürdig eingestuft werden. Die Sandbox einer lokalen HTML-Datei ist nur für das HTML-zu-SWF-Scripting relevant, beispielsweise mit der JavaScript-API von Flash Player.

Sandbox einer SWF-Datei bestimmen

Eine SWF-Datei kann mit der folgenden schreibgeschützten ActionScript-Eigenschaft den Typ ihrer Sandbox bestimmen:

System.security.sandboxType

Diese Eigenschaft hat einen der vier folgenden Stringwerte:

  • "remote"
  • "localWithFile"
  • "localWithNetwork"
  • "localTrusted"

Verhalten der Sandbox "Lokal mit Dateisystem"

SWF-Dateien in der Sandbox Lokal mit Dateisystem können Vorgänge des Typs Lokal lesen durchführen, aber weder Vorgänge des Typs Im Netzwerk senden noch SWF-HTML-Operationen.

Wenn Sie eine Debug-Version von Flash Player verwenden, mit dem Debugger in Macromedia Flash verbunden sind und eine SWF-Datei in dieser Sandbox versucht, eine unzulässige Operation durchzuführen, wird im Bedienfeld Ausgabe eine Diagnosemeldung angezeigt, die die fehlgeschlagene Operation beschreibt.

Wenn ein Benutzer eine SWF-Datei mit der Veröffentlichungsversion 7 oder früher in dieser Sandbox wiedergibt und die SWF-Datei versucht, eine unzulässige Operation durchzuführen, wird ein Warndialogfeld eingeblendet. In diesem Warndialogfeld wird der Benutzer darauf hingewiesen, dass der Inhalt wegen der geänderten Regeln für die lokale Sicherheit in Flash Player 8 möglicherweise nicht mehr wie vorgesehen funktioniert.

Sicherheitsdialogfeld weist den Benutzer auf Abbruch des Vorgangs hin

Abbildung 3. Sicherheitsdialogfeld weist den Benutzer auf Abbruch des Vorgangs hin

Dieses Dialogfeld wird bei jeder Ausführung der Anwendung nur einmal angezeigt. Folgende Operationen schlagen fehl, ohne dass dieses Dialogfeld erneut eingeblendet wird.

Der versuchte Vorgang schlägt fehl, unabhängig davon, welche Schritte der Benutzer im Dialogfeld ausführt. Wenn der Benutzer jedoch auf die Schaltfläche Einstellungen klickt, wird ein neues Fenster mit dem Einstellungsmanager geöffnet. Hier kann der Benutzer den lokalen Inhalt, der die Durchführung der unzulässigen Operation versucht hat, als vertrauenswürdig einstufen. Wenn der Benutzer kurz nach Anzeige des Flash Player Einstellungsmanagers in Abbildung 2 den Befehl Hinzufügen im Einstellungsmanager auswählt, wird in einem Hinweis der Pfad der lokalen SWF-Datei eingeblendet, die versucht hat, die unzulässige Operation durchzuführen (siehe Abbildung 4).

Angabe eines vertrauenswürdigen Speicherorts mit einem Hinweis

Abbildung 4. Angabe eines vertrauenswürdigen Speicherorts mit einem Hinweis

Der Benutzer kann diesen Pfad einfach in das Textfeld Dieser Website vertrauen kopieren, um die SWF-Datei, die die Anzeige des Dialogfelds ausgelöst hat, als vertrauenswürdig einzustufen. In einigen Fällen ist dies ausreichend, doch manchmal besteht eine Anwendung aus mehreren Dateien, die als vertrauenswürdig eingestuft werden müssen, damit die Anwendung wie vorgesehen funktioniert. (Lesen Sie hierzu auch den Abschnitt zu kooperierenden Medien.) Der Benutzer muss also versuchsweise mehrere Dateien oder das ganze Verzeichnis der jeweiligen SWF-Datei als vertrauenswürdig einstufen.

Wenn der Benutzer Änderungen am Einstellungsmanager vornimmt, muss die Anwendung neu gestartet werden (meist durch Aktualisierung des Browsers), bevor die Änderungen wirksam werden.

In der Dokumentation zu den Sicherheitseinstellungen des Einstellungsmanagers wird der oben beschriebene Arbeitsablauf für Endbenutzer genauer erläutert. Außerdem wird in der TechNote Wie kann ich lokale Flash-Inhalte mit dem Internet kommunizieren lassen?* ausführlich beschrieben, wie lokaler Inhalt als vertrauenswürdig eingestuft werden kann.

FlashAuthor.cfg

Das Warndialogfeld zur lokalen Sicherheit wird Endbenutzern nur für SWF-Dateien der Version 7 und früher angezeigt. Dieses Dialogfeld soll Benutzern die Möglichkeit geben, älteren Inhalt (vor Flash 8) korrekt zu verwenden, der von den neuen Regeln zur lokalen Sicherheit betroffen ist.

Für Autoren von Flash-Inhalt kann das Sicherheitsdialogfeld jedoch auch eine nützliche Informationsquelle sein, aus der ersichtlich ist, warum Inhalt nicht korrekt funktioniert. Autoren möchten möglicherweise umgehend informiert werden, wenn eine SWF-Datei beliebiger Version versucht, eine Operation durchzuführen, die unter den neuen Regeln der lokalen Sicherheit nicht zulässig ist.

Deshalb installieren verschiedene Authoring-Tools von Macromedia, darunter auch Macromedia Flash 8, eine Datei namens FlashAuthor.cfg. Diese Datei weist Flash Player an, ein Warndialogfeld einzublenden, wenn eine SWF-Datei (egal welcher Version) in der Sandbox Lokal mit Dateisystem versucht, eine unzulässige Operation durchzuführen. Benutzer können diese Datei auch selbst erstellen. Die Datei kann in einem von zwei Speicherorten platziert werden, jeweils neben den FlashPlayerTrust-Verzeichnissen:

  • Windows, alle Benutzer:

    <system>\Macromed\Flash\FlashAuthor.cfg

    (z. B. c:\WINNT\system32\Macromed\Flash\FlashAuthor.cfg)

  • Windows, ein Benutzer:

    <Anwendungsdaten>\Macromedia\Flash Player\#Security\FlashAuthor.cfg

    (z. B. c:\Dokumente und Einstellungen\fred\Anwendungsdaten\Macromedia\Flash Player\#Security\FlashAuthor.cfg)

  • Mac OS, alle Benutzer:

    <app support>/Macromedia/FlashAuthor.cfg

    (z. B. /Library/Application Support/Macromedia/FlashAuthor.cfg)

  • Mac OS, ein Benutzer:

    <app data>/Macromedia/Flash Player/#Security/FlashAuthor.cfg

    (z. B. /Users/fred/Library/Preferences/Macromedia/Flash Player/#Security/FlashAuthor.cfg)

In dieser Datei wird derzeit nur eine Direktive erkannt:

LocalSecurityPrompt=Author

Durch diese Direktive ignoriert Flash Player die SWF-Version bei der Entscheidung, ob das Warndialogfeld in Abbildung 3 angezeigt werden soll.

Die Datei FlashAuthor.cfg kann auch Leerräume enthalten sowie Kommentare, die vom Zeichen # eingeleitet werden und bis zum Ende der Zeile reichen.

Wenn Sie SWF-Inhalt entwickeln, der in Form von lokalen Dateien wiedergegeben werden soll, ist die Direktive LocalSecurityPrompt=Author wahrscheinlich nicht zu empfehlen, da sie verhindert, dass Flash Player das Endbenutzerverhalten genau simuliert. Sie können das autorenspezifische Verhalten deaktivieren, indem Sie die Datei FlashAuthor.cfg so ändern, dass ihr Inhalt nicht LocalSecurityPrompt=Author ist, wie oben gezeigt. Beispielsweise können Sie die oben gezeigte Zeile auskommentieren oder in leicht verständlichen Text ändern, wie:

LocalSecurityPrompt=User

Beachten Sie, dass Macromedia Flash 8 die Datei FlashAuthor.cfg in den Verzeichnissen für alle Benutzer und für einen Benutzer installiert. Wenn FlashAuthor.cfg in beiden Verzeichnissen vorhanden ist, berücksichtigt Flash Player die Kopie im Verzeichnis für einen Benutzer. Bearbeiten Sie also die Datei in diesem Verzeichnis.

Verhalten der Sandbox "Lokal mit Netzwerk"

SWF-Dateien in der Sandbox Lokal mit Netzwerk können Vorgänge des Typs Im Netzwerk senden durchführen, aber weder Vorgänge des Typs Lokal lesen noch SWF-HTML-Operationen.

Wenn Sie eine Debug-Version von Flash Player verwenden, mit dem Debugger in Flash verbunden sind und eine SWF-Datei in dieser Sandbox versucht, eine unzulässige Operation durchzuführen, wird im Bedienfeld Ausgabe eine Diagnosemeldung angezeigt, die die fehlgeschlagene Operation beschreibt.

Für SWF-Dateien in dieser Sandbox wird das Dialogfeld mit der Sicherheitswarnung nicht eingeblendet, da keine Situation möglich ist, in der Inhalt vor Änderung der Regeln für die lokale Sicherheit erstellt werden konnte und sich gleichzeitig in der Sandbox Lokal mit Netzwerk befindet. Alle unzulässigen Vorgänge in dieser Sandbox schlagen fehl, ohne dass eine Warnung für den Endbenutzer angezeigt wird.

SWF-Dateien in der Sandbox Lokal mit Netzwerk können Vorgänge mit der Berechtigung Im Netzwerk senden ausführen. Einige Vorgänge des Typs Im Netzwerk senden sind unidirektional, das heißt, es werden Daten gesendet, aber keine Antworten empfangen; andere sind Anforderungen, auf die eine Antwort zurück gesendet wird. Letztere sind Vorgänge des Typs Im Netzwerk lesen, eine untergeordnete Gruppe von Im Netzwerk senden. Ein Beispiel für einen Vorgang des Typs Im Netzwerk lesen ist XML.load("http://mysite.com/data/schedule.xml"). SWF-Dateien in der Sandbox Lokal mit Netzwerk können Vorgänge mit der Berechtigung Im Netzwerk lesen ausführen. In Übereinstimmung mit dem Prinzip für globale Berechtigungen in Flash Player kann eine SWF-Datei in der Sandbox Lokal mit Netzwerk aber nur Daten aus einer Domäne laden, wenn diese Domäne eine Richtliniendatei* bereitstellt, die alle Domänen zum Lesen der relevanten Daten berechtigt, und zwar mit <allow-access-from domain="*" />. Im oben genannten Beispiel benötigt mysite.com eine Richtliniendatei am Standardspeicherort (http://mysite.com/crossdomain.xml) oder neben den gewünschten Daten (http://mysite.com/data/crossdomain.xml). Im letzteren Fall müsste die ladende SWF-Datei den folgenden Aufruf durchführen, um Flash Player über den nicht standardmäßigen Speicherort der Richtliniendatei zu informieren:

System.security.loadPolicyFile("http://mysite.com/data/crossdomain.xml")