(Domanda di bontà in fondo)
Sto riscontrando un problema con un client che accede al nostro sito e la causa principale è che a WAF (Web Application Firewall) non piace la stringa User-Agent:
User-Agent: Mozilla/5.0 (X11; Linux i686; rv:34.0; C7QcSBPWTsrpX5YLvVZMqiujEZLWPtOYk3tDZ9WhW18=) Gecko/20100101 Firefox/34.0
In questo caso, la stringa codificata in base64 sta innescando un falso positivo nel WAF che pensa che User-Agent sia libwww-perl. La stringa base64 non viene decodificata in alcun testo leggibile.
- Avere una stringa con codifica base64 all'interno di un User-Agent è normale o inusuale?
- L'uso di stringhe base64 all'interno di un User-Agent è coperto da RFC o dalle principali pratiche dei fornitori?
Sto cercando di capire cosa sta succedendo qui; Non credo che la firma WAF sia completamente fuori linea rispetto all'oggetto, quindi preferirei non solo disabilitarlo, ma non ho mai visto questo tipo di stringa User-Agent prima, quindi preferirei capire meglio quanto comune e / o legittimo un caso d'uso questo è.
Il sito è progettato per essere utilizzato da utenti con browser - non è un'API o qualcosa del genere - e mi è stato riferito che l'utente ha tentato di accedere al sito con "FF / IE / Chrome" e non è riuscito. Tuttavia, mostra connessioni riuscite dallo stesso IP client con un user-agent Opera:
User-Agent: Opera/9.80 (X11; Linux i686) Presto/2.12.388 Version/12.16
È un po 'strano che l'utente riferisca di aver provato IE, ma tutte le stringhe User-Agent che vedo sembrano essere Linux. (Come sempre, il contatto con l'utente finale è mediato da diverse parti, quindi non posso fidarmi completamente di tutto ciò che sento). È anche probabile che l'IP sia il lato in uscita di un proxy Web di classe business, il che spiegherebbe perché vedo Opera che lavora per qualcuno mentre qualcun altro segnala problemi dallo stesso IP.
Aggiornare
Ispirato dall'esempio di @PlanetScaleNetworks, ho cercato su Google la stringa e da lì ho finito con UA Tracker per cercare stringhe base64 (o, il loro sottoinsieme che era imbottito - ho cercato "=)"). Ha restituito circa 20 User-Agent:
Aggiungerò una generosità a questa domanda, e lo spazio di risposta che sto cercando è "che tipo di software sta mettendo le stringhe di base64 in User-Agent, e perché? E c'è qualche segno di legittimità per questa pratica? "
Punto minore:
L'utente ha risolto il nostro problema utilizzando un plug-in del browser per modificare il proprio User-Agent, quindi questo è ora un problema accademico - ma penso che sia un problema accademico interessante :)