Guide d'autodéfense numérique

Lorsqu'un navigateur demande une page web, il inclut dans la requête le nom du logiciel, son numéro de version, le système d'exploitation utilisé et la langue dans laquelle celui-ci est configuré.

Voici une requête envoyé par le navigateur web Firefox :

GET /index.html HTTP/1.1
Host: example.org
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*; q=0.8
Accept-Language: fr-FR,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: https://www.google.com/search?q=example+domain&ie=utf-8& oe=utf-8&aq=t
Cookie: PHPSESSID=r2t5uvjq435r4q7ib3vtdjq120

On y voit tout d'abord une commande contenant le nom de la page demandée (index.html), le nom de domaine correspondant (www.example.org), suivie d'un en-tête qui contient entre autres le nom et la version de navigateur (Mozilla/5.0 Gecko/20100101 Firefox/52.0) ainsi que le système d'exploitation utilisé (Linux x86_64), les langues acceptées (fr-FR pour français de France, en pour anglais), la page sur laquelle se trouvait le lien que l'internaute a suivi pour arriver à la page demandée (https://www.google.com/search?q=example+domain&ie=utf-8&oe=utf-8&aq=t, noter les termes de recherche : « example » et « domain »), et le cookie de session (PHPSESSID=r2t5uvjq435r4q7ib3vtdjq120).

Ces informations sont là pour être utilisées par le serveur web, qui va adapter sa réponse en fonction : c'est notamment grâce à cela qu'un site disponible en plusieurs langues s'affiche dans notre langue sans que nous ayons eu à l'indiquer.

Mais ces informations, comme toutes celles qui transitent par le serveur, sont aussi accessibles aux personnes qui s'occupent de la maintenance du serveur : ses admins... et leur hiérarchie. En général, les serveurs gardent aussi ces informations dans des journaux, plus ou moins longtemps, notamment pour faire des statistiques et pour faciliter les diagnostics en cas de panne. Ils ajoutent aux en-têtes l'adresse IP d'origine ainsi que la date et l'heure. Voici une ligne de journal enregistrée pour notre requête (l'adresse IP se trouve au début : 203.0.113.16) :

203.0.113.16 - - [01/Jan/2010:00:00:00 +0100] "GET /page.html HTTP/1.1" 200 9042 "http://www.exemple.org/index.html" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3"