Soketit eivät toimi Flash Playerissa

Adobe Flash Playerin 9.0.115.0-versiota uudemmissa versioissa on mahdollista, että seuraavat määritykset eivät toimi odotetusti:

  • SWF-tiedosto yrittää muodostaa Socket- tai XMLSocket-yhteyden takaisin omaan isäntäänsä ilman, että se suorittaa loadPolicyFile-kutsun hakeakseen soketin käytäntötiedoston.
  • SWF-tiedosto yrittää muodostaa Socket- tai XMLSocket-yhteyden takaisin omaan isäntäänsä ja lataa käytäntötiedoston, jossa ei ole sen omaa toimialuetta sallittujen toimialueiden luettelossa.
  • SWF-tiedosto yrittää muodostaa Socket- tai XMLSocket-yhteyden takaisin mille tahansa isännälle, ja HTTP-käytäntötiedosto myöntää luvan.

Katso Vianmääritys-osiosta ohjeita sen selvittämiseksi, koskeeko tämä muutos sivustoasi.

Syy

Flash Playerin 9.0.115.0-versiota uudemmat versiot muuttavat sokettiyhteyksien oikeuksia koskevia vaatimuksia, ja HTTP-käytäntötiedostot eivät enää vahvista sokettiyhteyksiä. Flash Playerissa on kahdentyyppisiä käytäntötiedostoja:

  • HTTP-käytäntötiedostot, jotka ovat crossdomain.xml-tiedostoja palvelimella, joka määrittää, voivatko muiden toimialueiden SWF-tiedostot ladata kyseisen palvelimen sisältöä.
  • Soketin käytäntötiedostot, jotka määrittävät portit, joihin Flash Player voi muodostaa yhteyden Socket- tai XMLSocket-yhteyksien avulla.

Aiemmissa versioissa soketin käytäntötiedostoa, joka on soketin käyttöön ottama käytäntötiedosto, ei vaadittu yhteyden muodostamiseen portteihin, joiden numero on suurempi kuin 1024, jos

  • toimialue, joka palveli SWF-tiedostoa, oli sama kuin sokettiyhteyden toimialue ja
  • palveleva toimialue isännöi crossdomain.xml-tiedostoa.

Tämä aiempi määritys aiheutti riskin asiakkaille, koska yhä suurempaa määrää tärkeitä palveluja palvellaan porteista, joiden numero on suurempi kuin 1024. Tämä muutos auttaa vähentämään mahdollisuutta DNS rebinding -hyökkäykseen, jossa käytetään Flash Player -soketteja, joiden kautta pääsee käsiksi uhrin isäntään. Tämän ongelman helpottamiseksi Flash Player vaatii nyt soketin käytäntötiedoston kaikkiin sokettiyhteyksiin riippumatta kohdeportista ja crossdomain.xml-tiedoston olemassaolosta. Nyt soketin käytäntötiedostoille on kiinteä sijainti portissa 843. Tässä portissa oleva käytäntötiedosto pystyy määrittämään metakäytännöt, jotka määrittävät, sallitaanko isäntäkoneella muita soketin käytäntötiedostoja. Oletuksena kaikki soketin käytäntötiedostot hyväksytään.

Jos käyttämäsi SWF-tiedostot pystyivät aiemmin muodostamaan yhteyden alkuperäiseen isäntään porteissa, joiden numero on suurempi kuin 1024, koska siellä oli crossdomain.xml-tiedosto, sinulla tulee nyt olla soketin käytäntötiedosto. Soketin käytäntötiedostoa voidaan palvella joko soketin käytäntötiedostolle määritetystä vakioportista (843) tai samasta portista kuin sokettiyhteyttä.

Vianmääritys

Seuraavien tietojen avulla voit määrittää, vaikuttaako tämä muutos sivustoosi. Flash Player 9.0.115.0 -versiossa otettiin käyttöön uusi, käytäntötiedostoja koskeva kirjaustoiminto. Käytäntötiedostoloki näyttää viestejä kaikista käytäntötiedostoja koskevista tapahtumista: niiden hakuyrityksistä, niiden prosessoinnin onnistumisista ja epäonnistumisista ja siitä, mitä tapahtui pyynnöille, jotka ovat niistä riippuvaisia. Täydelliset tiedot käytäntötiedostojen lokiviesteistä löytyvät ohjeen Policy file changes in Flash Player 9 and 10 Appendix B:stä.

Käytäntötiedostolokien käyttäminen:

  1. Asenna Flash Player 9.0.115.0:n tai uudemman Debug-versio. Voit käyttää minkä tyyppistä Flash Playeria tahansa: ActiveX:ää, liitännäistä tai erillistä Flash Playeria. Flash Playerin Debug-version voi hankkia Flash Playerin tukikeskuksen Lataukset-sivulta.
  2. Selvitä mm.cfg-määritystiedoston sijainti. Tämä on yleinen virheenkorjaukseen tarkoitettu määritystiedosto, jota Flash Playerin Debug-versiot lukevat käynnistettäessä. mm.cfg-tiedosto sijaitsee kotihakemistossa. Esimerkiksi:

    • Windows: C:\Documents and Settings\käyttäjänimi
    • Windows Vista: C:\Users\käyttäjänimi
    • Mac OS ja Linux: /home/käyttäjänimi
  3. Luo mm.cfg, jos sitä ei ole, ja lisää sitten yksi tai molemmat seuraavista riveistä:

    • PolicyFileLog=1 # Sallii käytäntötiedostoja koskevan kirjauksen
    • PolicyFileLogAppend=1 # Valinnainen; älä tyhjennä lokia käynnistettäessä
    • Jos PolicyFileLogAppend ei ole käytössä, jokainen uusi päätason SWF tyhjentää lokitiedoston. Jos policyfilelogappendpolicyfilelogappend<> on käytössä, lokitiedoston aiemmat sisällöt säilytetään aina, ja lokitiedosto kasvaa lopusta.

    Jos testauksen aikana ladataan useita erilaisia päätason SWF-tiedostoja, kannattaa todennäköisesti ottaa PolicyFileLogAppend käyttöön. Jos otat PolicyFileLogAppend-toiminnon käyttöön, sinun täytyy kuitenkin todennäköisesti nimetä lokitiedosto uudelleen manuaalisesti tai poistaa se silloin tällöin. Muuten siitä tulee liian suuri, jolloin on vaikea määrittää, mihin edellinen tuotos päättyy ja mistä uusi alkaa.

  4. Hae sijainti, johon policyfiles.txt eli käytäntötiedostoloki kirjoitetaan. On mahdollista, että sitä ei vielä ole; Flash Player luo sen seuraavalla kerralla, kun SWF-tiedosto suoritetaan. policyfiles.txt löytyy seuraavista sijainneista:
    • Windows: C:\Documents and Settings\käyttäjänimi\Application Data\Macromedia\Flash Player\Logs
    • Windows Vista: C:\Users\käyttäjänimi[ AppData]\Roaming\Macromedia\Flash Player\Logs
    • Mac OS: /Käyttäjät/käyttäjänimi/Kirjasto/Asetukset/Macromedia/Flash Player/Logs (on epätavallista, että ohjelma kirjoittaa lokitiedostoja Asetukset-hakemistoon, mutta näin kuitenkin on)
    • Linux: /home/username/.macromedia/Flash_Player/Logs
  5. Tarkista asetukset suorittamalla jokin SWF-tiedosto Flash Playerissa ja sulje sitten Flash Player (tai selain).

  6. Nyt näet Logs-hakemistossa policyfiles.txt-tiedoston. Varmista, että muokkauspäivämäärä on uusi. Avaa se ja varmista, että siinä on ainakin yksi viesti ("Root-level SWF loaded"). Jos näin on, käytäntötiedostoja koskeva kirjaus toimii.

  7. Avaa SWF-sisältö, jota aiot testata. Suorita sisältö jollakin sellaisella tavalla, jossa sen täytyy olla tekemisissä käytäntötiedostojen kanssa. Kun olet valmis, sulje Flash Player.
  8. Lue, onko policyfiles.txt-tiedostossa tietoa siitä, mitä käytäntötiedostoille tapahtui testauksen aikana. Jos näet epäselviä viestejä, katso Policy file changes in Flash Player 9 and 10.

  9. Jos policyfiles.txt-tiedostossa on hyödyllistä tietoa, jota tarvitset myöhemmin, nimeä lokitiedosto uudelleen toisella nimellä tai siirrä se toiseen hakemistoon niin, että Flash Player ei korvaa lokia, kun se suoritetaan uudelleen.

Ratkaisu: Luo soketin käytäntötiedosto, joka sallii yhteyden isäntään

Ongelman ratkaisemiseksi sinun tulee luoda soketin käytäntötiedosto, joka sallii yhteyden isäntään. Tätä käytäntötiedostoa voidaan palvella joko soketin käytäntötiedoston vakiosijainnista portista 843 tai sokettiyhteyden kohdeportista. Soketin käytäntötiedoston tulee sisältää kaikki toimialueet, joiden sallitaan muodostaa yhteys sokettiin, mukaan lukien se itse. Jos soketin käytäntötiedostoa isännöidään vakiosijainnista, sisällytä metakäytännöt siitä, missä soketin käytäntötiedostojen sallitaan sijaitsevan.

Soketin käytäntötiedostoja koskevat muutokset on kuvattu yksityiskohtaisesti ohjeessa Policy file changes in Flash Player 9 and 10. (Lokiviestit on kuvattu yksityiskohtaisesti Appendix B:ssä.)

Lisätietoa

Flash Playerin suojausta koskevaa tietoa on Flash Playerin suojaussivulla.

Muutokset toimialueen ylittävissä ja soketin käytäntötiedostoissa on kuvattu yksityiskohtaisesti ohjeessa Policy file changes in Flash Player 9 and 10.

Lisensoitu Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License -lisenssin mukaan.  Creative Commons -lisenssien ehdot eivät koske Twitter™- ja Facebook-viestejä.

Lakisääteiset ilmoitukset   |   Online-tietosuojakäytäntö