O Explorer da Internet não dá suporte a nomes de usuário e senhas em endereços de site da Web (URLs HTTP ou HTTPS)

Aviso

O aplicativo da área de trabalho desativado e sem suporte do Internet Explorer 11 está programado para ser desativado permanentemente por meio de uma atualização do Microsoft Edge em certas versões do Windows 10. Para obter mais informações, consulte Perguntas frequentes sobre a desativação do aplicativo de área de trabalho do Internet Explorer 11.

Este artigo destina-se a notificar administradores de sites e profissionais de TI sobre o comportamento da Internet Explorer quando as informações do usuário são incluídas em um endereço de site da Web (URL HTTP ou HTTPS).

Versão original do produto: Internet Explorer
Número de KB original: 834489

Resumo

Por padrão, as versões da Internet Explorer que foram lançadas a partir da versão da atualização de segurança 832894 não dão suporte ao tratamento de nomes de usuário e senhas em HTTP e HTTP com URLs SSL (Secure Sockets Layer) ou HTTPS. A seguinte sintaxe de URL não tem suporte no Explorer da Internet ou no Windows Explorer:

http(s)://username:password@server/resource.ext

Este artigo destina-se a notificá-lo desse comportamento padrão de Explorer da Internet. Se você incluir informações de usuário em URLs HTTP ou HTTPS, recomendamos explorar as soluções alternativas descritas neste artigo.

Informações gerais

As versões de Explorer da Internet 3.0 a 6.0 dão suporte à seguinte sintaxe para URLs HTTP ou HTTPS:

http(s)://username:password@server/resource.ext

Você pode usar essa sintaxe de URL para enviar automaticamente informações do usuário para um site que dá suporte ao método de autenticação básico.

Um usuário mal-intencionado pode usar essa sintaxe de URL para criar um hiperlink que parece abrir um site legítimo, mas na verdade abre um site da Web enganoso (falsificado). Por exemplo, a URL a seguir parece ser aberta http://www.wingtiptoys.com , mas na verdade abre http://example.com:

http://www.wingtiptoys.com@example.com

Observação

Nesse caso, a Internet Explorer 6 Service Pack 1 (SP1) e a Internet Explorer 6 para Microsoft Windows Server 2003 são exibidas http://example.com apenas na barra Endereço. No entanto, versões anteriores da Internet Explorer exibidas http://www.wingtiptoys.com@example.com na barra Endereço.

Além disso, usuários mal-intencionados podem usar essa sintaxe de URL junto com outros métodos para criar um link para um site enganoso (falsificado) que exibe a URL para um site legítimo na barra status, barra de endereços e barra de título de todas as versões da Internet Explorer. Para obter mais informações sobre esse problema, clique no número do artigo 833786 para ajudar a se proteger contra sites enganosos (falsificados) e hiperlinks mal-intencionados.

Explicação da alteração no comportamento padrão

Para atenuar os problemas discutidos na seção Informações em segundo plano, o Explorer da Internet e o Windows Explorer não suportam mais o tratamento de URLs HTTP e HTTPS desse formulário. O Windows Explorer e o Internet Explorer não abrem sites HTTP ou HTTPS usando uma URL que inclua informações do usuário. Por padrão, se as informações do usuário forem incluídas em uma URL HTTP ou HTTPS, será exibida uma página da Web com o seguinte título:

Erro de sintaxe inválido.

Observação

Essa alteração no comportamento padrão não afeta outros protocolos.

Essa alteração no comportamento padrão também é implementada por atualizações de segurança, pacotes de serviço e versões da Internet Explorer que foram lançadas a partir da versão da atualização de segurança 832894.

Soluções alternativas para usuários

  1. URLs que são abertas por usuários que digitam a URL na barra de endereços ou clicam em um link

    Se os usuários normalmente digitar URLs HTTP ou HTTPS que incluem informações do usuário na barra de endereços ou clicarem em links que incluem informações do usuário em URLs HTTP ou HTTPS, você poderá contornar essa nova funcionalidade na Internet Explorer de duas maneiras:

    • Não inclua informações do usuário em URLs HTTP ou HTTPS.
    • Instrua os usuários a não incluir suas informações de usuário ao digitar URLs HTTP ou HTTPS.

    Se o site usar o método básico de autenticação, a Internet Explorer solicitará automaticamente aos usuários um nome de usuário e uma senha. Em alguns casos, os usuários podem clicar na caixa Lembrar minha senha na caixa de diálogo para salvar suas credenciais para visitas posteriores a esse site.

Soluções alternativas para desenvolvedores de aplicativos e sites da Web

  1. URLs que são abertas por objetos que chamam funções WinInet ou Urlmon

    Para objetos que usam uma URL HTTP ou HTTPS que inclui informações do usuário quando chamam uma função WinInet ou Urlmon, como InternetOpenURL, reescreva o objeto para usar um dos seguintes métodos para enviar informações do usuário ao site:

    • Use a função InternetSetOption e inclua os seguintes sinalizadores de opção:
      • INTERNET_OPTION_USERNAME
      • INTERNET_OPTION_PASSWORD

    Observação

    Para esses sinalizadores, a opção InternetSetOption deve ter um identificador retornado pela função InternetConnect. Portanto, se o aplicativo usar a função InternetOpenUrl, modifique o aplicativo para usar as funções InternetConnect , HttpOpenRequest e HttpSendRequest WinInet.

    Para obter mais informações sobre como usar essas funções, visite os seguintes sites da Microsoft:

    Para obter mais informações sobre como usar a Interface IAuthenticate , visite o seguinte site da Microsoft:

    Observação

    Com essa solução alternativa, você pode abrir sites que a técnica de falsificação de URL redireciona. Toda a URL é exibida, incluindo o local redirecionado.

    Por exemplo, a seguinte URL é exibida:

    http://www.wingtiptoys.com@www.example.com

    O usuário ainda chega ao site redirecionado. Neste exemplo, o usuário chega a http://www.example.com.

  2. URLs que são abertas por um script que usa credenciais para gerenciamento de estado

    Se você incluir URLs HTTP ou HTTPS que contêm informações do usuário em seu código de script, para gerenciar informações de estado, altere seu código de script para usar cookies em vez de informações do usuário. Para obter mais informações sobre como usar cookies para gerenciar informações de estado, consulte Mecanismo de Gerenciamento de Estado HTTP.

    Para ver um exemplo de como usar o Visual Basic para ler e gravar cookies HTTP em um programa Web ASP.NET, consulte Classe HttpCookie.

Como desabilitar o novo comportamento ou usá-lo em outros programas

Você pode definir valores de registro para usar esse novo comportamento em outros programas que hospedam o controle do navegador da Web ou para desabilitar esse novo comportamento para windows Explorer e internet Explorer.

  1. Como os programas que hospedam o controle do navegador da Web podem usar esse novo comportamento padrão para lidar com informações do usuário em HTTP ou em URLs HTTPS

    Por padrão, esse novo comportamento padrão para lidar com informações do usuário em URLs HTTP ou HTTPS se aplica apenas ao Windows Explorer e à Internet Explorer. Para usar esse novo comportamento em outros programas que hospedam o controle do navegador da Web, crie um valor DWORD chamado SampleApp.exe, em queSampleApp.exe é o nome do arquivo executável que executa o programa. Defina os dados de valor do valor DWORD como 1 em uma das chaves de registro a seguir.

    • Para todos os usuários do programa, defina o valor na seguinte chave do registro:

      HKEY_LOCAL_MACHINE\Software\Microsoft\InternetExplorer\Main\FeatureControl\FEATURE_HTTP_USERNAME_PASSWORD_DISABLE

    • Somente para o usuário atual do programa, defina o valor na seguinte chave do registro:

      HKEY_CURRENT_USER\Software\Microsoft\InternetExplorer\Main\FeatureControl\FEATURE_HTTP_USERNAME_PASSWORD_DISABLE

  2. Como desabilitar o novo comportamento padrão para lidar com informações do usuário em URLs HTTP ou HTTPS

    Para desabilitar o novo comportamento padrão no Windows Explorer e na Internet Explorer, crie iexplore.exe eexplorer.exe valores DWORD em uma das chaves de registro a seguir e defina seus dados de valor como 0.

    • Para todos os usuários do programa, defina o valor na seguinte chave do registro:

      HKEY_LOCAL_MACHINE\Software\Microsoft\InternetExplorer\Main\FeatureControl\FEATURE_HTTP_USERNAME_PASSWORD_DISABLE

    • Somente para o usuário atual do programa, defina o valor na seguinte chave do registro:

      HKEY_CURRENT_USER\Software\Microsoft\InternetExplorer\Main\FeatureControl\FEATURE_HTTP_USERNAME_PASSWORD_DISABLE

Referências

Para obter uma explicação da sintaxe de URL padrão para URLs HTTP ou HTTPS, visite os seguintes sites do IETF (Internet Engineering Task Force):

A Microsoft fornece informações de contato de terceiros para ajudá-lo a encontrar suporte técnico. Essas informações de contato podem ser alteradas sem aviso prévio. A Microsoft não garante a precisão dessas informações para contato com outras empresas.