(Pregunta de recompensa en la parte inferior)
Tengo un problema con un cliente que accede a nuestro sitio, y la causa raíz es que al WAF (Firewall de aplicaciones web) no le gusta su cadena de User-Agent:
User-Agent: Mozilla/5.0 (X11; Linux i686; rv:34.0; C7QcSBPWTsrpX5YLvVZMqiujEZLWPtOYk3tDZ9WhW18=) Gecko/20100101 Firefox/34.0
En este caso, la cadena codificada en base64 está activando un falso positivo en el WAF que piensa que el User-Agent es libwww-perl. La cadena base64 no se decodifica a ningún texto legible.
- ¿Tener una cadena codificada en base64 dentro de un User-Agent es normal o inusual?
- ¿El uso de cadenas base64 dentro de un User-Agent está cubierto por RFC o prácticas de proveedores importantes?
Estoy tratando de entender lo que está pasando aquí; No creo que la firma WAF esté completamente fuera de línea para objetar, por lo que prefiero no solo deshabilitarla, pero no he visto este tipo de cadena de User-Agent antes, así que prefiero entender mejor qué tan común y / o un caso de uso legítimo es este.
El sitio está diseñado para ser utilizado por humanos con navegadores (no es una API ni nada por el estilo) y me han informado que el usuario ha intentado acceder al sitio con "FF / IE / Chrome" y ha fallado. Sin embargo, muestro conexiones exitosas desde la misma IP del cliente con un agente de usuario de Opera:
User-Agent: Opera/9.80 (X11; Linux i686) Presto/2.12.388 Version/12.16
Es un poco extraño que el usuario informa haber probado IE, pero todas las cadenas de User-Agent que veo parecen ser Linux. (Como de costumbre, el contacto con el usuario final se realiza a través de varias partes, por lo que no puedo confiar plenamente en nada de lo que escucho). También es probable que la IP sea el lado saliente de un proxy web de clase empresarial, lo que explicaría por qué veo que Opera funciona para alguien mientras que otra persona informa problemas desde la misma IP.
Actualizar
Inspirado en el ejemplo de @PlanetScaleNetworks, busqué en Google la cadena y desde allí terminé usando UA Tracker para buscar cadenas de base64 (o el subconjunto de ellas que estaban rellenadas, busqué "=)"). Devolvió unos 20 agentes de usuario:
Voy a agregar una recompensa a esta pregunta, y el espacio de respuesta que estoy buscando es "¿qué tipo de software está poniendo cadenas base64 en User-Agents y por qué? ¿Y hay algún sello de legitimidad para esta práctica? "
Punto menor:
El usuario ha solucionado nuestro problema utilizando un complemento de navegador para modificar su User-Agent, por lo que ahora es un problema académico, pero creo que es un problema académico interesante :)