Sockets funktionieren nicht in Flash Player

Mit Adobe Flash Player-Versionen höher als 9.0.115.0 funktionieren möglicherweise folgenden Konfigurationen nicht wie beabsichtigt:

  • Eine SWF-Datei stellt eine Verbindung mit einer Socket oder einer XMLSocket und ihrem eigenen Host her, ohne einen loadPolicyFile-Aufruf auszuführen, um eine Socket-Richtliniendatei abzurufen.
  • Eine SWF-Datei stellt eine Verbindung mit einer Socket oder einer XMLSocket und ihrem eigenen Host her und lädt eine Richtlinien-Datei, die ihre eigene Domäne in der zugelassenen Domäne nicht auflistet.
  • Eine SWF-Datei stellt eine Verbindung mit einer Socket oder einer XMLSocket und ihrem eigenen Host her mit einer HTTP-Richtliniendatei, die Genehmigung erteilt.

Weitere Anweisungen zum Ermitteln, ob diese Änderung Ihre Site beeinflusst, finden Sie im Abschnitt Diagnose.

Ursache

Flash Player-Versionen höher als Version 9.0.115.0 ändern die Berechtigungsanforderungen für die Socketverbindungen und HTTP-Richtliniendateien autorisieren keine Socketverbindungen mehr. Flash Player verfügt über zwei Arten von Richtliniendateien:

  • HTTP-Richtliniendateien, die crossdomain.xml-Dateien auf einem Server sind, die definieren, ob SWF-Dateien aus anderen Domänen den Inhalt des Servers laden können.
  • Socket-Richtliniendateien, die die Ports definieren, zu denen Flash Player mithilfe der Socket- oder XMLSocket-Verbindungen eine Verbindung herstellen kann.

In früheren Versionen war eine Socket-Richtliniendatei, die eine Richtliniendatei ist, die von einer Socket bereitgestellt wird, nicht erforderlich, um eine Verbindung mit Ports höher als 1024, herzustellen, wenn

  • die Domäne, die mit der SWF-Datei verbunden war, dieselbe wie die Domäne der Socket-Verbindung war, und
  • die verbundene Domäne eine crossdomain.xml-Datei gehostet hat.

Diese frühere Konfiguration stellte ein Risiko für Kunden dar, da eine steigende Anzahl von wichtigen Diensten mit Ports verbunden sind, die größer als 1024 sind. Diese Änderung hilft auch dabei, DNS-Angriffe mithilfe von Flasch Player-Sockets zu minimieren, um den Host der Opfer erreichen können. Um dieses Problem zu beheben, benötigt Flash Player jetzt eine Socket-Richtliniendatei für alle Socket-Verbindungen, unabhängig vom Zielport und vom Vorhandensein einer crossdomain.xml-Datei. Es gibt jetzt einen festen Master-Speicherort für Socket-Richtliniendateien auf Port 843. Die Richtliniendatei auf diesem Port kann Meta-Richtlinien definieren, die definieren, ob andere Socket-Richtliniendateien auf dem Host zugelassen sind. Standardmäßig werden alle Socket-Richtliniendateien bestätigt.

Zuvor konnte eine SWF-Dateien eine Verbindung zu ihrem Ursprungshost auf Ports höher als 1024 herstellen, da es eine crossdomain.xml-Datei gab, aber jetzt müssen Sie eine Socket-Richtlinienkdatei haben. Die Socket-Richtliniendatei kann entweder mit dem Master-Socket-Richtlinienport (843) verbunden sein oder mit dem gleichen Port wie die Socket-Verbindung.

Diagnose

Lesen Sie weitere Anweisungen zum Ermitteln, ob diese Änderung Ihre Site beeinflussen. Flash Player 9.0.115.0 hat eine neue Funktion zum Protokollieren einer Richtliniendatei eingeführt. Das Richtliniendateiprotokoll zeigt Meldungen für jedes Ereignis in Bezug auf Richtliniendateien: Versuche, diese abzurufen, Erfolge und Fehler bei deren Verarbeitung und die Ergebnisse der Anforderungen, die damit zusammenhängen. Sie können einen kompletten Artikel zu den Richtliniendateiprotokollmeldungen in Anhang B von Richtliniendateiänderungen in Flash Player 9 und 10 finden.

Verwendung des Richtliniendateiprotokolls:

  1. Installieren Sie die Debug-Version von Flash Player 9.0.115.0 oder höher. Sie können alle Arten von Flash Player verwenden: ActiveX, Plug-In oder eigenständige Versionen. Die Debug-Version von Flash Player kann von Flash Player Support Center Downloads heruntergeladen werden.
  2. Legen Sie den Speicherort Ihrer mm.cfg-Konfigurationsdatei fest. Dies ist eine allgemeine Debug-Konfigurationsdatei, die Debug-Versionen von Flash Player beim Start lesen Die Datei „mm.cfg“ befindet sich im Stammverzeichnis. Beispiel:

    • Windows: C:\Dokumente und Einstellungen\Benutzername
    • Windows Vista: C:\Benutzer\Benutzername
    • Mac OS und Linux: /home/Benutzername
  3. Erstellen Sie die Datei „mm.cfg“, falls nicht vorhanden, und fügen Sie dann eine oder beide der folgenden Zeilen hinzu:

    • PolicyFileLog=1 # Aktiviert Richtliniendateiprotokollierung
    • PolicyFileLogAppend=1 # Optional; löscht nicht Protokoll beim Start
    • Wenn PolicyFileLogAppend nicht aktiviert ist, wird jede neue Stammebenen-SWF die Protokolldatei löschen. Wenn policyfilelogappendpolicyfilelogappend<> aktiviert ist, wird der vorherige Inhalt der Protokolldatei immer beibehalten, und die Protokolldatei wird am Ende immer größer.

    Wenn viele verschiedene SWF-Dateien der Stammebene während des Tests geladen werden, müssen Sie PolicyFileLogAppend aktivieren. Wenn Sie jedoch PolicyFileLogAppend aktivieren, müssen Sie wahrscheinlich die Protokolldatei manuell umbenennen oder manchmal auch löschen, sonst wird diese sehr groß und es ist nur schwer festzustellen, wo die vorherige Ausgabe endet und die neue Ausgabe beginnt.

  4. Suchen Sie dien Speicherort, an dem die policyfiles.txt-Datei, das Richtliniendateiprotokoll, geschrieben wird. Sie muss nicht unbedingt schon vorhanden sein. Flash Player erstellt sie, wenn eine SWF-Datei ausgeführt wird. Sie können die Date policyfiles.txt an folgenden Speicherorten finden:
    • Windows: C:\Dokumente und Einstellungen\Benutzername\Application Data\Macromedia\Flash Player\Logs
    • Windows Vista: C:\Benutzer\Benutzername[ AppData]\Roaming\Macromedia\Flash Player\Logs
    • Mac OS: /Benutzer/Benutzername/Library/Preferences/Macromedia/Flash Player/Logs (es ist ungewöhnlich für ein Programm Protokolldateien in den Voreinstellungen-Ordner zu schreiben, aber genau das passiert)
    • Linux: /home/Benutzername/.macromedia/Flash_Player/Logs
  5. Um Ihr Setup zu überprüfen, führen Sie eine SWF-Datei in Flash Player aus und schließen Sie Flash Player (oder den Browser) dann.

  6. Jetzt sehen Sie policyfiles.txt im Protokollordner. Überprüfen Sie, das die Zeit, zu der er geändert wurde, jetzt anders ist. Öffnen Sie ihn und vergewissern Sie sich, dass mindestens eine Meldung angezeigt wird („SWF der Stammebene geladen). Wenn dies der Fall ist, funktioniert das Protokollieren der Richtliniendatei.

  7. Suchen Sie den SWF-Inhalt, der geprüft werden muss. Führen Sie den Inhalt in allen Fällen aus, in denen der Inhalt auf Richtliniendateien stößt. Schließen Flash Player, wenn Sie fertig sind.
  8. Weitere Informationen über was mit Richtliniendateien während der Testausführung aufgetreten ist, finden Sie in policyfiles.txt. Wenn Sie Nachrichten sehen, die nicht klar sind, lesen Sie Richtliniendateiänderungen in Flash Player 9 und 10.

  9. Wenn Sie nützliche Informationen in policyfiles.txt finden, die Sie zur späteren Verwendung aufbewahren müssen, geben Sie der Protokolldatei einen anderen Namen als policyfiles.txt oder verschieben Sie sie in einen anderen Ordner, damit Flash Player nicht das Protokoll überschreibt, wenn es erneut ausgeführt wird.

Lösung: Erstellen Sie eine Socket-Richtliniendatei, die eine Verbindung zum Host zulässt.

Um dieses Problem zu beheben, müssen Sie eine Socket-Richtliniendatei erstellen, die eine Verbindung mit dem Host zulässt. Diese Richtliniendatei kann entweder vom Speicherort der Socket-Master-Richtlinie auf Port 843 oder vom Zielport der Socket-Verbindung heruntergeladen werden. Die Socket-Richtliniendatei muss alle Domänen einbeziehen, die eine Verbindung mit der Socket herstellen können, einschließlich sich selbst. Wenn die Socket-Richtliniendatei vom Speicherort der Master-Richtliniendatei gehostet wird, schließen Sie Meta-Richtlinien dort ein, wo Socket-Richtliniendateien zulässig sind.

Die Änderungen für Socket-Richtliniendateien werden im Detail in den Richtliniendateiänderungen in Flash Player 9 und 10 beschrieben. (Protokollmeldungen werden ausführlich im Anhang B beschrieben.)

Zusätzliche Referenzen

Weitere Sicherheitsinformation zu Flash Player finden Sie auf der Seite „Flash Player-Sicherheit“.

Die Änderungen bei domäneübergreifenden Richtliniendateien und Socket-Richtliniendateien werden ebenfalls ausführlich in den Richtliniendateiänderungen in Flash Player 9 und 10 beschrieben.

Dieses Werk unterliegt den Bedingungen der Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Twitter™- und Facebook-Beiträge fallen nicht unter die Bedingungen der Creative Commons-Lizenz.

Rechtliche Hinweise   |   Online-Datenschutzrichtlinie