Exportar (0) Imprimir
Expandir Todos
Expand Minimize

Colocação na Cache de Objectos do Internet Explorer

noteNota
O componente do Microsoft Windows Server 2003 Configuração de Segurança Avançada do Internet Explorer (também conhecido como reforço de protecção do Microsoft Internet Explorer) reduz a vulnerabilidade de um servidor a ataques de conteúdo Web através da aplicação de definições de segurança do Internet Explorer mais restritivas, que desactivam scripts, componentes ActiveX e transferências de ficheiros para recursos na zona de segurança Internet. Consequentemente, muitos dos melhoramentos de segurança incluídos na última versão do Internet Explorer só serão notados no Windows Server 2003 Service Pack 1. Por exemplo, as novas funções do Internet Explorer, Barra de Informações e Bloqueador de Janelas de Pop-up, só serão utilizadas se o site estiver numa zona cuja definição de segurança permite scripts. Se não estiver a utilizar a configuração de segurança avançada no servidor, estas funções agirão como no Windows XP Service Pack 2.

Qual a função da Colocação na Cache de Objectos?

Nas versões anteriores do Windows Server 2003 com Internet Explorer, algumas páginas Web podiam aceder a objectos em cache de outro Web site. No Windows Server 2003 Service Pack 1, já não é possível aceder a uma referência a um objecto quando o utilizador navega para um novo domínio.

A quem se aplica esta função?

Os programadores Web devem examinar esta funcionalidade e planear a adopção de alterações ao Web site.

Os programadores de aplicações devem examinar esta funcionalidade e planear a adopção de alterações nas aplicações.

Que nova funcionalidade foi adicionada a esta função no Windows Server 2003 Service Pack 1?

Nenhuma. A funcionalidade existente foi expandida.

Que funcionalidade existente foi alterada no Windows Server 2003 Service Pack 1?

O contexto de segurança é invalidado ao navegar para um domínio diferente

Descrição detalhada

No Windows Server 2003 Service Pack 1, agora existe um novo contexto de segurança em todos os objectos passíveis de script para que o acesso a objectos em cache (excepto controlos ActiveX) fique bloqueado. Além de bloquear o acesso ao navegar entre domínios, o acesso também é bloqueado ao navegar no mesmo domínio. (Neste contexto, um domínio é definido como um nome de domínio totalmente qualificado ou FQDN.) Deixa de ser possível aceder a uma referência a um objecto depois de o contexto ter sido alterado devido à navegação.

Porque é que esta alteração é importante? Que ameaças ajuda a atenuar?

Antes do Internet Explorer 5.5, as navegações em páginas HTML (ou para sub-frames) limpavam instâncias de MSHTML, o motor de análise e processamento de HTML da Microsoft . Com a arquitectura de frames nativas do Internet Explorer 5.5, uma instância do MSHTML persiste entre navegações. Isto introduziu uma nova classe de vulnerabilidades, uma vez que os objectos podiam ser colocados na cache entre navegações. Se for possível colocar um objecto na cache e permitir o acesso ao conteúdo de uma página Web de outro domínio, existe um vazio entre domínios.

Depois de obter as propriedades do objecto interno, o script fora do domínio de uma página pode aceder ao conteúdo de uma página interna. É uma violação do modelo de segurança entre domínios do Internet Explorer.

Por exemplo, pode utilizar este método para criar scripts que recebam eventos ou conteúdo noutras frames, tais como números de cartão de crédito ou outros dados confidenciais escritos na outra frame.

O que funciona de maneira diferente? Existem dependências?

Nas poucas classes que ainda não os tenham, são adicionados mais quatro bytes para marcação da cache. Isso não deverá afectar a velocidade de processamento.

Como posso resolver estes problemas?

Para a maioria destas classes de vulnerabilidade, teria ocorrido uma falha geral do Internet Explorer 5, pelo que o risco de resolução da falha de segurança de compatibilidade de aplicações seria pequeno. Noutras aplicações, as vulnerabilidades teriam de ser resolvidas caso a caso.

Quais as definições adicionadas ou alteradas no Windows Server 2003 Service Pack 1?

Colocação na Cache de Objectos do Internet Explorer

Nome da definição Localização Valor predefinido anterior Valor predefinido Valores possíveis

IExplore.exe

Explorer.exe

HKEY_LOCAL_MACHINE (ou Current User)\Software \Microsoft \Internet Explorer\Main \FeatureControl \FEATURE_OBJECT_CACHING

Nenhum

1

0 - Inactivo

1 - Activo

Necessito de alterar o código para funcionar com o Windows Server 2003 Service Pack 1?

Se a aplicação estiver a tentar utilizar um objecto em cache, poderá encontrar erros de Acesso Negado. Nesta instância tem de voltar a colocar em cache o objecto antes de acedê-lo utilizando um script.

No exemplo seguinte, o contexto de segurança é invalidado quando a propriedade designMode está definida num objecto de documento.

Exemplo de script interrompido

    var d = myFrame.document;
    d.designMode = "On";
    d.open();  <-------------------------causes permission denied error

Exemplo de script corrigido

    var d = myFrame.document;
    d.designMode = "On";
    d = myFrame.document;   // re-establish pointer to document object.
    d.open();

Para além disso, quando compara os valores das duas propriedades frame.frames de um objecto, os resultados podem não estar correctos ou os valores podem não ter sido retidos. Isto acontece porque o objecto de pacotes está moldado com um invólucro de segurança. Quando a funcionalidade de colocação em cache do objecto está activada, este invólucro de segurança é aplicado. Assim, o acesso a todos os objectos em cache está bloqueado. Isto pode fazer com que a comparação de objectos de pacotes seja falsa mesmo que os pacotes sejam iguais. Para resolver este problema, pode utilizar o método que se segue para comparar o valor dos pacotes:

a.name == parent.frames[1].frames.name

Considera isto útil?
(1500 caracteres restantes)
Obrigado pelos seus comentários

Conteúdo da Comunidade

Adicionar
Mostrar:
© 2014 Microsoft