Soquetes não funcionam no Flash Player

Com versões do Adobe Flash Player posteriores a 9.0.115.0, quaisquer das seguintes configurações podem não funcionar como pretendido:

  • Um arquivo SWF tenta efetuar uma conexão de soquete ou XMLSocket de volta ao seu próprio host, sem executar uma chamada loadPolicyFile para recuperar um arquivo de política de soquete.
  • Um arquivo SWF tenta efetuar uma conexão de soquete ou XMLSocket de volta ao seu próprio host, e carrega um arquivo de política que não lista seu próprio domínio dentre os domínios permitidos.
  • Um arquivo SWF tenta efetuar uma conexão de soquete ou XMLSocket de volta a qualquer host, com um política HTTP concedendo a pwermissão.

Consulte a seção Diagnósticos para obter instruções para determinar se essa alteração afeta o seu site.

Motivo

As versões do Flash Player posteriores 9.0.115.0 alteram os requisitos de permissão para conexões de soquete e os arquivos de política HTTP não mais autorizam conexões de soquete. O Flash Player tem dois tipos de arquivos de política:

  • Arquivos de política HTTP, que são arquivos crossdomain.xml em um servidor que definem se os arquivos SWF de outros domínios podem carregar conteúdo daquele servidor.
  • Arquivos de política de soquete, que definem as portas as quais o Flash Player pode conectar-se usando conexões de soquete ou XMLSocket.

Nas versões anteriores, um arquivo de política de soquete, que é um arquivo de política implementado por um soquete não era necessário para conectar-se às portas maiores que 1024, se

  • o domínio que servia o arquivo SWF era o mesmo que o domínio da conexão de soquete e
  • o domínio servindo hospedava um arquivo crossdomain.xml.

Essa configuração anterior apresentava um risco aos clientes já que um número maior de serviços críticos são servidos a partir de portas maiores do que 1024. Essa alteração também ajuda a minimizar a possibilidade de um ataque de revinculação DNS usando os soquetes do Flash Player para acessar o host da vítima. Para mitigar esse problema, o Flash Player agora exige um arquivo de política de soquete para todas as conexões de soquete, independentemente da porta de destino e a presença de um arquivo crossdomain.xml. Há agora um local mestre fixo para arquivos de política de soquete na porta 843. O arquivo de política nesta porta poderá definir as metapolíticas que definem se outros arquivos de política de soquete são ativados no host. Por padrão, todos os arquivos de política de soquete são reconhecidos.

Se os arquivos SWF anteriormente podiam se conectar a seus host de origem em portas maiores do que 1024 porque havia um arquivo crossdomain.xml, agora você deve ter um arquivo de política de soquete. O arquivo de política de soquete pode ser servido na porta mestre da política de soquete (843) ou da mesma porta que a da conexão de soquete.

Diagnóstico

Use as seguintes informações para determinar se essa alteração afeta o seu site. O Flash Player 9.0.115.0 introduziu o registro do arquivo de política, um novo recurso. O registro do arquivo de política mostra as mensagens para cada evento em relação aos arquivos de política: tentativas de recuperá-los, êxitos e falhas em processá-los e os destinos de solicitações que dependem deles. Você pode encontrar uma referência completa às mensagens de registro do arquivo de política no Apêndice B das alterações do arquivo de política no Flash Player 9 e 10.

Para usar o registro do arquivo de política:

  1. Instale uma versão de depuração do Flash Player 9.0.115.0 ou posterior. Você pode usar qualquer tipo de Flash Player: ActiveX, Plug-in ou Independente. Você pode obter a versão de depuração do Flash Player em Downloads do Centro de Suporte do Flash Player.
  2. Determine o local de seu arquivo de configuração mm.cfg. Este é um arquivo de configuração geral que as versões de depuração do Flash Player irão ler na inicialização. O arquivo mm.cfg está localizado em seu diretório principal. Por exemplo:

    • Windows: C:\Documents and Settings\nome do usuário
    • Windows Vista: C:\Users\nome do usuário
    • Mac OS e Linux: /home/nome do usuário
  3. Crie o mm.cfg se ele não existir e, a seguir, adicione uma ou ambas as seguintes linhas:

    • PolicyFileLog=1 # Enables policy file logging
    • PolicyFileLogAppend=1 # Optional; do not clear log at startup
    • Se PolicyFileLogAppend não estiver ativado, cada novo nível raiz SWF irá limpar o arquivo de registro. Se o policyfilelogappendpolicyfilelogappend<> estiver ativado, o conteúdo anterior do arquivo de registro será mantido sempre e o arquivo de registro irá crescer no final.

    Se vários arquivos SWF diferentes do nível raiz são carregados durante os testes, provavelmente você desejará ativar PolicyFileLogAppend. No entanto, se você ativar PolicyFileLogAppend, vai provavelmente precisar renomear manualmente ou excluir ocasionalmente do arquivo de registro ou ele se tornará muito grande e será difícil determinar onde é o fim da saída anterior e o início da nova saída.

  4. Localize o local onde policyfiles.txt, o registro do arquivo de políticas será gravado. Ele pode não existir necessariamente; o Flash Player irá criá-lo-á na próxima vez que um arquivo SWF for executado. Você pode encontrar policyfiles.txt nos seguintes locais:
    • Windows: C:\Documents and Settings\nome do usuário\Application Data\Macromedia\Flash Player\Logs
    • Windows Vista: C:\Users\nome do usuário[ AppData]\Roaming\Macromedia\Flash Player\Logs
    • Mac OS: /Users/nome do usuário/Library/Preferences/Macromedia/Flash Player/Logs (não é convencional para um programa gravar arquivos de registro no diretório Preferences, mas isso de fato é o caso)
    • Linux: /home/nome do usuário/.macromedia/Flash_Player/Logs
  5. Para verificar sua configuração, execute qualquer arquivo SWF no Flash Player e, a seguir, feche o Flash Player (ou o navegador).

  6. Você agora Vê o policyfiles.txt no diretório Registros. Verifique se ele tem uma hora de modificação recente. Abra-o e verifique se ao menos uma mensagem aparece (“Nível raiz SWF carregado”). Em caso afirmativo, o registro do arquivo de política está funcionando.

  7. Visite o conteúdo SWF que você precisa testar. Execute o conteúdo através de quaisquer cenários que irão causar a ocorrência de arquivos de política. Feche o Flash Player quando você tiver terminado.
  8. Leia policyfiles.txt para obter informações sobre o que ocorreu com os arquivos de política durante sua execução de teste. Se você vê mensagens que não são claras, consulte Alterações no arquivo de políticas no Flash Player 9 e 10.

  9. Se você encontrar informações úteis em policyfiles.txt que precisa manter para referência futura, renomeie o arquivo de registro para algo diferente de policyfiles.txt ou mova o arquivo para outro diretório para que o Flash Player não substitua o registro quando ele for novamente executado.

Solução: crie um arquivo de política de soquete que permita a conexão ao host

Para solucionar esse problema, você deve criar um arquivo de política de soquete, permitindo a conexão ao host. O arquivo de política de soquete pode ser servido na localização da política mestre de soquete na porta 843 ou da mesma porta de destino que a da conexão de soquete. O arquivo de política de soquete deve incluir todos os domínios que têm permissão para conectar-se ao soquete, incluindo ele mesmo. Se o arquivo de política de soquete estiver hospedado a partir do local do arquivo de política mestre, inclua as metapolíticas onde os arquivos de políticas de soquete têm permissão de estar localizados.

As alterações para os arquivos de políticas de soquete são descritas em detalhes em Alterações no arquivo de políticas no Flash Player 9 e 10. (As mensagens de registro são descritas em detalhes no Apêndice B).

Referência adicional

Para obter informações de segurança do Flash Player, visite a página de segurança do Flash Player.

As alterações para o domínio cruzado e para os arquivos de políticas de soquete são descritas em detalhes em Alterações no arquivo de políticas no Flash Player 9 e 10.

Esta obra está licenciada sob uma licença não adaptada da Creative Commons Attribution-Noncommercial-Share Alike 3.0  As publicações do Twitter™ e do Facebook não são cobertas pelos termos do Creative Commons.

Avisos legais   |   Política de privacidade online