La modifica dell'agente utente è potenzialmente pericolosa?

1

Sto lavorando su un'applicazione mobile ibrida e trar vantaggio dalla versione dell'app, dal build del SO e dalle dimensioni dello schermo degli utenti che emettono la nostra API, solo per sapere se i problemi si verificano a causa di uno sviluppo insufficiente funzionalità o un bugfix che non può soddisfare i problemi di tutti. In questo modo, in una procedura semi trasparente, sarei in grado di rintracciarlo. L'ho provato con alcuni utenti, e funziona come un incantesimo in quelli, ma altri si lamentano degli strani errori che si verificano durante il download dei file dai nostri CDN.

La modifica dell'agente utente può influire sulle richieste di download per un server e interessa solo utenti specifici?

PS: ho deciso di cambiare l'agente utente, dal momento che alcune delle informazioni che desidero sono "relative al codice nativo" e l'impostazione di quella nell'agente utente significherebbe alcun cambiamento nelle attuali chiamate API.

    
posta Korcholis 15.07.2015 - 11:21
fonte

1 risposta

2

Il modo più semplice per scoprirlo è disattivare la personalizzazione di User-Agent e vedere se il problema scompare :).

In generale, non è garantito che User-Agent sia ciò che imposti. Ad esempio, un firewall aziendale potrebbe utilizzare un'analisi approfondita dei pacchetti per riscrivere l'User-Agent e ridurre l'entropia del browser .

Filosoficamente, penso che modificare User-Agent per includere ulteriori informazioni di registrazione sia una cattiva idea perché viola il principio di responsabilità singola (applicato ai dati: ascoltami). Supponiamo che il browser di tutti sia conforme agli standard . (La tua app ibrida è conforme, giusto? :)) Sui dispositivi mobili, User-Agent ha una responsabilità ben definita: indicare la preferenza dell'utente per il rendering mobile o desktop. Google dice :

HTTP redirection is a commonly used to redirect clients to device-specific URLs. Usually, the redirection is done based on the user-agent in the HTTP request headers.

È ridicolo che una stringa di 109 byte (per me) serva a trasmettere un singolo bit di informazioni? Certo, ma questo è il mondo in cui viviamo.

Riscrivere User-Agent per aggiungere informazioni di registrazione dà a quella stringa una seconda responsabilità. Ciò significa che i tuoi server, CDN, strumenti di registrazione e tutto il resto devono sapere (o almeno tollerare) sia le informazioni di registrazione che le informazioni sugli intenti mobili / desktop. Ogni volta che vuoi modificare le informazioni di registrazione, devi assicurarti di non rompere nulla relativo all'intento di rendering e viceversa.

Anche se ora può essere un problema, fai a te stesso ea coloro che mantengono il tuo codice un favore: non sovraccaricare User-Agent . Dividere le responsabilità per mantenere il codice semplice e liberamente accoppiato si ripaga molte volte risparmiando tempo, riducendo lo stress e prevenire la caduta dei capelli.

    
risposta data 15.07.2015 - 14:44
fonte

Leggi altre domande sui tag