(Pergunta de recompensa na parte inferior)
Estou tendo um problema com um cliente acessando nosso site, e a causa principal é que o WAF (Web Application Firewall) não gosta da string do User-Agent:
User-Agent: Mozilla/5.0 (X11; Linux i686; rv:34.0; C7QcSBPWTsrpX5YLvVZMqiujEZLWPtOYk3tDZ9WhW18=) Gecko/20100101 Firefox/34.0
Nesse caso, a cadeia codificada em base64 está disparando um falso positivo no WAF, que considera o agente do usuário libwww-perl. A cadeia base64 não decodifica para nenhum texto legível.
- Ter uma string codificada em base64 dentro de um User-Agent é normal ou incomum?
- O uso de seqüências de caracteres base64 dentro de um User-Agent é coberto por quaisquer RFCs ou práticas de grandes fornecedores?
Estou tentando entender o que está acontecendo aqui; Eu não acho que a assinatura WAF esteja completamente fora de linha para objetar, portanto, prefiro não apenas desabilitá-la, mas nunca vi esse tipo de string User-Agent antes, para entender melhor como é comum e / ou legítimo caso de uso.
O site foi projetado para ser usado por humanos com navegadores - não é uma API ou algo parecido - e me foi relatado que o usuário tentou acessar o site com "FF / IE / Chrome" e falhou. No entanto, mostro conexões bem-sucedidas do mesmo IP do cliente com um agente do Opera:
User-Agent: Opera/9.80 (X11; Linux i686) Presto/2.12.388 Version/12.16
É um pouco estranho o fato de o usuário relatar ter tentado o IE, mas todas as sequências User-Agent que vejo parecem ser Linux. (Como de costume, o contato com o usuário final é mediado por várias partes, por isso não posso confiar totalmente em nada que ouço). Também é provável que o IP seja o lado de saída de um proxy da web de classe empresarial, o que explicaria por que vejo alguns Opera trabalhando para alguém enquanto outra pessoa relata problemas do mesmo IP.
Atualizar
Inspirado no exemplo @PlanetScaleNetworks, pesquisei a string no Google e, a partir daí, acabei usando o UA Tracker para procurar por strings base64 (ou o subconjunto delas preenchidas - procurei por "=)"). Ele retornou cerca de 20 User-Agents:
Vou adicionar uma recompensa a essa pergunta, e o espaço de resposta que procuro é "que tipo de software está colocando as seqüências de base64 nos agentes do usuário e por quê? E há algum selo de legitimidade para essa prática?" "
Ponto menor:
O usuário resolveu o nosso problema usando um plug-in do navegador para modificar seu User-Agent, então agora é um problema acadêmico - mas acho que é um problema acadêmico interessante :)