Internet Explorer: editando a string do agente do usuário para que seja vista pelo servidor

Internet Explorer: editando a string do agente do usuário para que seja vista pelo servidor

SO: Windows 7/8
Navegador: Internet Explorer 11
Plataforma: x86

Como posso editar a string do agente do usuário em uma máquina para ser vista universalmente pelo código do lado do servidor e pelos logs do servidor web? Esta precisa ser uma solução permanente e implantável, portanto, algo como usar as Ferramentas do Desenvolvedor provavelmente não funcionará a longo prazo.

A única maneira de definir/modificar uma string de agente de usuário para o Internet Explorer para que ela seja vista por um servidor Web remoto é usar a seguinte chave/valor de registro:

Key:   HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\User Agent\Version
Value: SomeTestString
Data:  NULL

O acima é o que aparentemente é utilizado pela configuração de Política de Grupo Windows Components\Internet Explorer\Customize User Agent String.

Se você adicionar a chave/valor conforme mostrado acima, seu agente de usuário aparecerá como algo como Mozilla/5.0 (SomeTestString; Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko Infelizmente, esteprecedea string personalizada que você adiciona à string do agente do usuário, que quebra muitos sites do Google e Netflix (e provavelmente muitos mais)

Usar outra chave/valor de registro que encontrei mostrará a string do agente do usuário por meio de uma consulta JavaScript, mas ela não aparece nos logs do site (não visível para o servidor):

Key:   HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent
Value: SomeTestString
Data:  NULL

Se você olhar nos logs do servidor web, verá apenas algo assim: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko, mas se acessar uma página que usa JavaScript para mostrar o agente do usuário, verá algo assim: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729; Tablet PC 2.0; SomeTestString; rv:11.0) like Gecko.

Qualquer conselho é apreciado, pois estou preso a uma string que quebra alguns sites, se utilizada. Observe que precisamos especificar um item personalizado na string do agente do usuário para oferecer suporte a uma plataforma de terceiros que não podemos controlar.

Responder1

Isto foi possível emum ponto no tempo, mas o recurso foi descontinuado e não tem mais suporte direto.

A diferença entre a string do agente do usuário relatada durante a negociação HTTP ("vista pelo servidor") e o valor relatado através da propriedade DOM é uma mudança deliberada projetada (em parte) para lidar com pessoas que sobrecarregam a string do agente do usuário emprecisamente esta moda.

O primeiro artigo descreve um conjunto de valores de registro que ajustavam a string do agente do usuário DOM de uma só vez; é possível que as configurações da Post Platform continuem funcionando. Você precisaria ajustar as configurações de todas as máquinas clientes que executam a ferramenta.

Se as mudanças na Post Platform não derem certo, você precisará considerar uma abordagem diferente, talvez uma que utilize umestratégia multiplataforma.

Espero que isto ajude...

-Lança

Responder2

Você poderia usar as "ferramentas de desenvolvedor" do IE.

Basta pressionarF12para ativá-lo.

  • Em versões mais antigas, está sob oferramentascardápio,alterar a string do agente do usuárioe personalize-o.

  • Nos mais novos, está sob oemulaçãocardápio.


Depois de alguma pesquisa, localizei algumas entradas de registro que você poderia ajustar para alterarpapelda string UA.

AlimparIE11 no Win7 usaMozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko

Win8 usa NT 6.3um normalmente adiciona um Touchlugar.

Eu acho que aquelespadrãoos valores não podem ser alterados pelo registro, no entanto, acho que você pode se livrar da maioria das .NETcoisas adicionadas, excluindo as entradas em

  • [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent\Post Platform]
  • [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent\Post Platform]

Basta levar em conta que compatibility modeno IE também altera a string UA para mostrar uma versão anterior do IE para "forçar" o servidor a pensar nissoéuma versão mais antiga (acho que usa IE6 ou 7), então talvez a maior parte do que você deseja se torne inútil se alguém precisar usar compatibility modepara carregar uma página da web.

informação relacionada