Sockets werken niet in Flash Player

De volgende configuraties werken mogelijk niet naar verwachting met versies van Adobe Flash Player later dan 9.0.115.0:

  • Een SWF-bestand probeert een socket- of XMLSocket-verbinding met zijn eigen hostbestand tot stand te brengen zonder een loadPolicyFile-aanroep uit te voeren om een socketbeleidsbestand op te halen.
  • Een SWF-bestand probeert een socket- of XMLSocket-verbinding met zijn eigen hostbestand tot stand te brengen en laadt een beleidsbestand dat zijn eigen domein niet in de lijst met toegestane domeinen vermeldt.
  • Een SWF-bestand probeert een socket- of XMLSocket-verbinding met om een willekeurig hostbestand tot stand te brengen, met een HTTP-beleidsbestand dat de machtiging verleent.

Zie de sectie Diagnose voor instructies om te bepalen of deze wijziging een invloed heeft op uw site.

Reden

Versies van Flash Player later dan 9.0.115.0 wijzigen de machtigingsvereisten voor socketverbindingen, en HTTP-beleidsbestanden autoriseren socketverbindingen niet langer. Flash Player heeft twee soorten beleidsbestanden:

  • HTTP-beleidsbestanden zijn crossdomain.xml-bestanden op een server die bepalen of SWF-bestanden van andere domeinen de inhoud van die server kunnen laden.
  • Socketbeleidsbestanden bepalen de poorten waarmee Flash Player verbinding kan maken via Socket- of XMLSocket-verbindingen.

In eerdere versies was geen socketbeleidsbestand (een beleidsbestand dat wordt geïmplementeerd door een socket) vereist om verbinding te maken met poorten hoger dan 1024,

  • als het domein dat het SWF-bestand aanbood, hetzelfde was als het domein van de socketverbinding,
  • en het uitvoerende domein een crossdomain.xml-bestand hostte.

Deze oudere configuratie vormde een risico voor klanten, aangezien steeds meer essentiële services via poorten hoger dan 1024 worden aangeboden. Deze wijziging verlaagt ook de kans op een DNS rebinding-aanval die via Flash Player-sockets de host van het slachtoffer probeert te bereiken. Om dit probleem te beperken, is nu een socketbeleidsbestand voor alle socketverbindingen bij Flash Player vereist, ongeacht de doelpoort en de aanwezigheid van een crossdomain.xml-bestand. Er is nu een vaste hoofdlocatie voor socketbeleidsbestanden op poort 843. Het beleidsbestand op deze poort bepaalt het metabeleid, dat bepaalt of andere socketbeleidsbestanden op de host zijn toegestaan. Standaard worden alle socketbeleidsbestanden erkend.

Als uw SWF-bestanden eerder verbinding konden maken met hun oorspronkelijke host op poorten hoger dan 1024 omdat er een crossdomain.xml-bestand was, hebt u nu een socketbeleidsbestand nodig. Het socketbeleidsbestand kan worden aangeboden via de hoofdpoort voor socketbeleid (843) of via dezelfde poort als de socketverbinding.

Diagnose

Gebruik de volgende informatie om te bepalen of deze wijziging invloed heeft op uw site. In Flash Player 9.0.115.0 werd een nieuwe functie geïntroduceerd: logboekregistratie van beleidsbestanden. Het logboek van beleidsbestanden toont berichten voor elke gebeurtenis die met beleidsbestanden te maken heeft: ophaalpogingen, succesvolle en mislukte verwerkingspogingen, en de uitkomst van de aanvragen die ervan afhankelijk zijn. In bijlage B van Wijzigingen in beleidsbestanden in Flash Player 9 en 10 vindt u een volledige naslag naar logboekberichten van beleidsbestanden.

Het logboek van beleidsbestanden gebruiken:

  1. Installeer een foutopsporingsversie van Flash Player 9.0.115.0 of later. U kunt elk type van Flash Player gebruiken: ActiveX, plug-in of zelfstandig. U kunt de foutopsporingsversie van Flash Player ophalen bij het Flash Player-ondersteuningscentrum voor downloads.
  2. Bepaal de locatie van uw mm.cfg-configuratiebestand. Dit is een algemeen configuratiebestand voor foutopsporing dat foutopsporingsversies van Flash Player lezen bij het opstarten. Het mm.cfg-bestand bevindt zich in uw basismap. Bijvoorbeeld:

    • Windows: C:\Documents and Settings\gebruikersnaam
    • Windows Vista: C:\Users\gebruikersnaam
    • Mac OS en Linux: /home/gebruikersnaam
  3. Maak mm.cfg als het niet bestaat, en voeg dan één of beide van de volgende regels toe:

    • PolicyFileLog=1 # Schakelt logregistratie van beleidsbestanden in
    • PolicyFileLogAppend=1 # Optioneel; wist logboek niet bij opstarten
    • Als PolicyFileLogAppend niet is ingeschakeld, wist elke nieuwe SWF op hoofdniveau het logboekbestand. Als policyfilelogappendpolicyfilelogappend<> is ingeschakeld, wordt de vorige inhoud van het logboekbestand altijd bewaard en wordt het logboekbestand steeds groter.

    Als vele verschillende SWF-bestanden op hoofdniveau worden geladen tijdens het testen, kunt u het best PolicyFileLogAppend inschakelen. Als u PolicyFileLogAppend echter inschakelt, moet u de naam van het logboekbestand waarschijnlijk handmatig wijzigen of het bestand af en toe verwijderen zodat het niet te groot wordt. Het kan ook moeilijk zijn om te bepalen waar oudere uitvoer eindigt en nieuwe uitvoer begint.

  4. Bepaal de locatie waar policyfiles.txt, het logboek van beleidsbestanden, wordt geschreven. Mogelijk bestaat het nog niet; Flash Player maakt het bestand wanneer de volgende keer een SWF-bestand wordt uitgevoerd. U vindt policyfiles.txt op de volgende locaties:
    • Windows: C:\Documents and Settings\gebruikersnaam\Application Data\Macromedia\Flash Player\Logs
    • Windows Vista: C:\Users\gebruikersnaam[ AppData]\Roaming\Macromedia\Flash Player\Logs
    • Mac OS: /Users/gebruikersnaam/Library/Preferences/Macromedia/Flash Player/Logs (het is ongebruikelijk dat een programma logboekbestanden in de map Voorkeuren plaatst, maar dat is hier wel het geval)
    • Linux: /home/gebruikersnaam/.macromedia/Flash_Player/Logs
  5. Voer een willekeurig SWF-bestand in Flash Player uit en sluit dan Flash Player (of de browser) om uw set-up te controleren.

  6. U ziet nu policyfiles.txt in de map Logboeken. Controleer dat het een recente wijzigingstijd heeft. Open het en controleer dat er ten minste één bericht wordt weergegeven ('Root-level SWF loaded'). Als dat het geval is, werkt de logboekregistratie van beleidsbestanden.

  7. Ga naar de SWF-inhoud die u wilt testen. Voer de inhoud uit in alle scenario's waarin deze met beleidsbestanden in aanraking komt. Sluit Flash Player wanneer u klaar bent.
  8. Lees policyfiles.txt voor informatie over wat er tijdens het testen met uw beleidsbestanden is gebeurd. Als u berichten ziet die niet duidelijk zijn, raadpleegt u Wijzigingen in beleidsbestanden in Flash Player 9 en 10.

  9. Als u nuttige informatie vindt in policyfiles.txt die u voor latere referentie moet bewaren, wijzigt u de naam van het logboekbestand in iets anders dan policyfiles.txt of verplaatst u het naar een andere map zodat Flash Player het logboek niet overschrijft wanneer het opnieuw wordt uitgevoerd.

Oplossing: maak een socketbeleidsbestand dat verbinding met de host toestaat

Om dit probleem te verhelpen, maakt u een socketbeleidsbestand dat verbinding met de host toestaat. Dit beleidsbestand kan worden aangeboden via de locatie van het sockethoofdbeleid op poort 843 of via de doelpoort van de socketverbinding. Het socketbeleidsbestand moet alle domeinen bevatten die met de socket verbinding kunnen maken, inclusief dat bestand zelf. Als het socketbeleidsbestand via de hoofdlocatie van beleidsbestanden wordt gehost, voegt u metabeleid toe waar socketbeleidsbestanden zich mogen bevinden.

De wijzigingen in socketbeleidsbestanden worden in detail beschreven in Wijzigingen in beleidsbestanden in Flash Player 9 en 10. (Logboekberichten worden in detail beschreven in bijlage B)

Verdere naslag

Ga naar de pagina Flash Player-beveiliging voor informatie over Flash Player-beveiliging.

De wijzigingen in beleidsbestanden tussen domeinen en socketbeleidsbestanden worden ook uitgebreid beschreven in Wijzigingen in beleidsbestanden in Flash Player 9 en 10.

Dit werk is gelicentieerd onder de Creative Commons Naamsvermelding/Niet-commercieel/Gelijk delen 3.0 Unported-licentie  De voorwaarden van Creative Commons zijn niet van toepassing op Twitter™- en Facebook-berichten.

Juridische kennisgevingen   |   Online privacybeleid