Como posso bloquear uma string do agente do usuário no IE11?

5

Estamos começando a atualizar nossos laptops para a tela de toque do Windows 8 e estamos descobrindo que alguns dos sites mais antigos (Aqueles que não podemos alterar) detectam a tela sensível ao toque como um dispositivo móvel e não carregam o site corretamente. Estamos usando o IE11 no modo Desktop.

Existe uma maneira de mudar quais usertrings estamos passando para os servidores da web?

    
por Tyler 16.10.2013 / 16:35

3 respostas

4

O problema com o UAPick de Bayden Systems e também o método de usar" Ferramentas de Desenvolvimento "do próprio IE11 com F12 , Ctrl + 8 , User Agent String , é que essas configurações não sobrevivem ao reinício do IE11.

Eu fiz alguns testes com a alteração dos valores no registro dos links @harrymc já fornecidos.

Primeiro alterando o HKEY_LOCAL_MACHINE one, mas isso não aconteceu aqui.% HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Internet Settings.0\User Agent

No entanto, a alteração do HKEY_CURRENT_USER funcionou. (mas é específico do usuário)
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings.0\User Agent

Primeiro o resultado sem alterações: (resultado de myip.nl )
Isto é para um Windows 8.1 64bit com o IE11 v11.0.9600.16384.

User agent: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko 
Browser: Unknow browser. 

Eu fiz um IE9.reg com o seguinte:

REGEDIT4

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings.0\User Agent]
@="Mozilla/5.0"
"Compatible"="compatible"
"Platform"="Windows NT 6.1"
"Version"="MSIE 9.0"

Isso altera completamente sua "String do agente do usuário". Depois de executá-lo eu consegui:

User agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko 
Browser: Internet explorer 9.0 

Mas isso também mudaria sua "Plataforma". Eu deixaria isso de fora. (Você também pode deixar "Mozilla" no padrão.)

Talvez, se as suas páginas Web apenas procurarem MSIE , é suficiente apenas alterar as Version -informações. Platform e "Mozilla" podem permanecer intocados para que os sites ainda possam identificá-lo corretamente. Eu também adicionei o Compatible -tag. Talvez isso também seja usado.

REGEDIT4

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings.0\User Agent]
"Compatible"="compatible"
"Version"="MSIE 9.0"

Isso resulta em:

User agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko 
Browser: Internet explorer 9.0 

A string dada pelas Ferramentas de Desenvolvimento ( F12 , Ctrl + 8 , User Agent String ) do IE9 é:
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)

Isso parece mais próximo do original e adiciona a capacidade de identificá-lo como compatível com IE9.

Não sei o que exatamente na "String do agente do usuário" aciona seus websites para "fornecer" uma visualização móvel (você não especificou o UA), mas é necessário corrigi-los e essas configurações sobrevivem ao reinício do IE11 e do PC.

Editar :
Então, o problema é o Touch em:
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/7.0; Touch; LCJB; rv:11.0)

O IE não oferece a possibilidade de alterar (ou remover) as partes que ele mesmo adiciona. Podemos alterar Compatible, Platform, Version e podemos adicionar tokens de Pré e Post Platform. (embora a versão não esteja mais no envio do IE11 e a plataforma anterior e posterior não será enviada no cabeçalho.)

Você pode tentar definir o modo de compatibilidade para ver que Touch ainda está lá. (Você já tentou isso?) Se isso funcionar, você pode adicionar os sites com problemas à lista para que eles sempre sejam exibidos no modo de compatibilidade.

Se o IE continuar insistindo em enviar Touch , você pode tentar manipular o UA com uma chave de plataforma estendida.

REGEDIT4

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings.0\User Agent]
@="Mozilla/5.0"
"Platform"="Windows NT 6.1; Trident/7.0; rv:11.0) // ("

Desta forma, o seu UA seria
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/7.0; rv:11.0) // (; Trident/7.0; Touch; LCJB; rv:11.0)
e esperamos que o site tenha mais problemas para encontrar Touch entre os primeiros ( e ) .

Se isso não funcionar, a única opção seria um add-on que substituiria o UA (como o UAPick, mas um que seria permanente após a reinicialização).

Editar # 2 :

Encontrou outra opção. Se o site varrer todo o UA, irá encontrar Touch . Com o seguinte, você mangle a parte Platform do UA com um avanço de linha, então ele definitivamente não o encontrará: (Eu encontrei esta solução aqui )

Crie um notouch.vbs -file com o seguinte:

Dim oShell
set oShell = CreateObject("WScript.Shell")
oShell.RegWrite "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings.0\User Agent\Platform", "Windows NT 6.1; Trident/7.0; rv:11.0)" & vbLf & "IGNORE: (", "REG_SZ"
Set oShell = Nothing

(observe o & vbLf & "IGNORE: -part)

Depois de executar o .vbs, a parte da plataforma tem um avanço de linha e depois disso uma linha IGNORE. Será assim nos cabeçalhos:

User agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/7.0; rv:11.0)
IGNORE: (Windows NT 6.1; Trident/7.0; Touch; LCJB; rv:11.0)

Veja ... não mais Touch na linha de agente do usuário;)
(é um hack, mas ei ... funciona)

    
por 24.10.2013 / 12:17
2

Tem certeza de que a string do agente do usuário está causando o problema?

Se você não tiver certeza, você pode usar o Fiddler2 para rastrear e capturar a solicitação de URL junto com todos seus cabeçalhos, e você também pode experimentar no Composer com modificações de criação para essa solicitação de URL para ver como isso afeta o site.

O artigo da Microsoft Noções básicas sobre sequências de user-agent na seção As chaves do Registro do agente do usuário informam que certas partes da cadeia do agente do usuário podem ser modificado no IE11 através da chave de registro HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings.0\User Agent da seguinte forma:

HKEY_LOCAL_MACHINE (or HKEY_CURRENT_USER)
SOFTWARE
  Microsoft
     Windows
        CurrentVersion
           Internet Settings
              5.0
                 User Agent
                    (default) = "Mozilla/4.0"
                    Compatible = "compatible"
                    Platform = "Windows NT 5.1"
                    Version = "MSIE 6.0"
                    Pre Platform
                       Token = Value
                    Post Platform
                       Token = Value

O artigo diz:

The default value of the User Agent key replaces the application name and application version tokens reported in the user-agent string. Be aware that the first seven characters are used for the application name, and the remaining characters specify the application version token.

The Compatible, Platform, and Version values replace the corresponding tokens in the user-agent string.

Additional tokens can be added to the user-agent string by using the Registry Editor to create new string values under the Pre-Platform key or Post-Platform key. The value name should be the complete token; the value data is ignored. Tokens added to the Pre-Platform key appear before the platform token in the final user-agent string. Tokens added to the Post-Platform key appear after the platform token in the final user-agent string. Multiple tokens in either the Pre-Platform key or Post-Platform key are displayed in an unpredictable order.

Algumas experiências do @Rik mostraram que o acima deveria funcionar para a sua plataforma. Você pode experimentar alterar esses valores para disfarçar seu navegador para ver se isso muda o comportamento desse site.

    
por 23.10.2013 / 23:41
1

Eu acho que você quer dizer o Windows 8.1.
Se esse for o caso, a MS alterou a sequência do agente do usuário para o IE11 no Windows 8.1 e faz com que os sites antigos detectem o PC como dispositivo móvel, mesmo para o meu laptop sem tela sensível ao toque. Existe uma solução, na verdade, uma solução alternativa para dizer. Obtenha o chrome / FF e instale um addon do alternador do agente do usuário. Então "FAKE" algum navegador antigo (Minha recomendação peronal IE8) para carregar sites antigos.

Isso pode não ser o melhor caminho, mas tenho certeza que é o mais fácil.

    
por 25.10.2013 / 19:01