mercoledì 26 ottobre 2016

Prezzi variabili e sessioni di lunga durata

Un sito web con offerte commerciali può presentare ad uno stesso utente non autenticato informazioni diverse in momenti diversi.

Ad esempio, l'utente vede un prezzo P1 per il bene B in un certo giorno e vede un prezzo P2 per lo stesso bene B qualche giorno dopo. Oppure, l'utente vede che sono disponibili K1 copie del bene B un certo giorno e K2 copie dopo qualche giorno.

Il sito può mostrare informazioni "vere" (cioè le stesse informazioni per tutti gli utenti) ma può anche mostrare informazioni scelte appositamente per tentare di massimizzare un qualche obbiettivo commerciale (spingere l'utente ad acquistare il prima possibile). In questo secondo caso il sito può decidere di mostrare informazioni diverse ad utenti diversi, scelte tenendo conto di visite precedenti da parte dello stesso utente (ad esempio per mettergli fretta).

Il problema è questo: come fa il sito a capire se una richiesta fatta in un giorno ed una richiesta identica fatta qualche giorno dopo sono state fatte dallo stesso utente? (si considera il caso di utenti non autenticati; se l'utente è autenticato allora il problema non si pone).

La soluzione banale è basata sui cookie. Il sito invia nelle risposte un cookie con durata di molte settimane.

L'utente ha a disposizione un modo banale per neutralizzare questa tecnica: cancellare i cookie; oppure utilizzare la cosiddetta "navigazione in incognito", disponibile in ogni browser. Nel secondo caso il browser cancella tutti i cookie creati nella finestra "in incognito" indipendentemente dalla loro durata (quindi ogni visita successiva allo stesso sito con lo stesso browser non utilizzerà i cookie ricevuti in passato da quel sito).

Il sito ha la possibilità di neutralizzare queste difese da parte degli utenti. Il sito può ottenere molte informazioni sull'utente che ha inviato una data request combinando queste informazioni:
  1. cookie (se presente);
  2. zona geografica dell'indirizzo IP lato client;
  3. browser fingerprint (informazioni di configurazione del browser e del sistema su cui si trova);
Combinando queste informazioni opportunamente, il sito è in grado di identificare ogni singolo utente con ottima approssimazione (ad eccezione dei siti che hanno centinaia di milioni di utenti; descrizione intuitiva, approssimata e semplificata).

Non è detto che un sito applichi questi metodi, ma tecnicamente può farlo.

L'utente può neutralizzare il punto 1; ha difficoltà a neutralizzare il punto 2 (dovrebbe viaggiare a molte centinaia di km di distanza ogni volta); ha forti difficoltà a neutralizzare il punto 3 (dovrebbe usare coppie browser-dispositivo diverse ogni volta).