• # Clarifications

    Posté par (site web personnel) . En réponse au journal Et pourquoi pas un nouveau modèle de sécurité pour le web ?. Évalué à 3.

    L'idée n'est pas de complexifier la navigation, mais au contraire de la rendre plus compréhensible par l'utilisateur. Et ce dont je parle à propos des cookies, peut je pense aussi s'appliquer au reste, entre autre, au données stockées par Javascript, prévu en HTML5.

    Je définis par session l'ensemble des données stockées sur la machine cliente qui permet de rendre le protocole HTTP qui à la base n'avait pas de mode connecté, d'avoir un mode connecté. L'ensemble des données qui permettent au serveur de tracer l'utilisateur. Pour simplifier, une session, c'est un fichier cookies.txt.

    • Non, il n'est pas question de rendre accessible les cookies à n'importe quel serveur. un cookie reste associé à un serveur unique et à un chemin de ressource.

    • Il n'est pas question non plus de fermer les sessions intempestivement. Lorsqu'un utilisateur clique sur un lien, la session suit, même si le lien s'ouvre dans une nouvelle fenêtre. Pourquoi pas stocker la session avec les marques pages. En bref, toutes les requêtes HTTP avec un referrer vont conserver la session du referrer

    • Si l'utilisateur est connecté sur ebay.com dans un onglet et qu'il tape ebay.com dans la barre d'adresse d'un autre onglet, la session peut ou non être reprise. C'est au navigateur de décider. Dans bien des cas, c'est logique de reprendre la session. Et dans tous les cas, si le navigateur ne reprend pas la session, il doit être affiché à l'utilisateur de manière non intrusive: "Vous avez déjà une session ouverte sur ebay.com, voulez-vous la réutiliser ?"

    • Les listes blanches/noires sont un pas en avant, mais pas du tout ce que je recherche. Je peux vouloir accepter les cookies de Google parce que je veux accéder à gmail, mais ne pas vouloir qu'il me trace partout avec ses publicités. En pratique, peut être que Google utilise des cookies différents, mais je ne veux pas que mon cookie facebook leur permette de savoir où je vais

    • Les options de cookies de mon navigateur ne sont pas suffisantes. Dans Firefox 6, j'ai eu beau ne pas cocher "accepter des cookies de tierces parties", j'ai quand même des cookies provenant de domaines qui n'ont jamais apparus dans ma barre d'adresse (je pense que dans ce cas, Firefox accepte quand même les cookies des iframes)

    • Ça me plairait pas mal de faire une extension Firefox, mais il semble que ce ne soit pas facile de décorréler la gestion des cookies par onglet ou de manière assez fine. J'en veux pour preuve l'extension SwapCookies qui nous informe:

      Note: When swapping profiles with CookieSwap, the cookies in all tabs and all browser windows are changed at the same time. This means that your web login to sites like gmail will change in all the tabs at once. I know it would be great to support different cookies per tab, but that problem poses some significant challenges.

      Si quelqu'un sait comment faire, je veux bien des idées. je n'ai jamais fait d'extension Firefox.


    Tout cela m'est venu lorsque je me suis renseignée sur l'option "do not track" de Firefox. Je me suis demandée pourquoi cette options était uniquement informative alors que le navigateur, en refusant les cookies, peut très bien réglementer le traçage. Il fallait alors un moyen pour que les sites puissent quand même légitimement conserver une session (temporairement).

    En fait, mon idée de départ était de modifier le protocole HTTP pour ajouter une notion de session, identique à ce qu'on peut trouver poiur l'authentification HTTP. On peut imaginer que le serveur demande:

    Session-Initiate: <identifiant de session généré par le serveur>
    Session-Timeout: temps au bout duquel l'identifiant de session est invalidé
    
    

    Lorsque le client voit cet en-tête, il va demander à l'utilisateur (de manière non intrusive) si il souhaite maintenir une session pour ce serveur en particulier. Dans le cas où l'utilisateur le souhaite, le navigateur demande si il souhaite initier une nouvelle session ou si il souhaite réutiliser une session existante.

    Dans le cas ou l'utilisateur ne souhaite pas être tracé, le navigateur ne renvoie aucun identifiant de session et va fermer cette nouvelle session:

    Session-Reject: <identifiant de session généré par le serveur>
    
    

    Si l'utilisateur veut créer une nouvelle session, le navigateur renvoie l'identifiant de session que le serveur vient de créer:

    Session: <identifiant de session généré par le serveur>
    
    

    Dans le cas où l'utilisateur souhaite réutiliser une ancienne session, dans la mesure où cette session est toujours valide, alors le navigateur renvoie:

    Session-Close: <le nouvel identifiant de session>
    Session: <l'ancien identifiant de session>
    
    

    Lors des futurs échanges, les deux parties continues de s'échanger l'identifiant de session, avec un nouveau timeout si nécessaire.

    À ce moment là, je me suis demandée pourquoi ne pas faire ça simplement avec des cookies. Lorsque le serveur envoie un cookie malgré l'option "do not track" alors l'utilisateur peut accepter de créer une session. Si l'utilisateur ne fait rien, aucune session n'est créée. Les notifications pour la page principale se font de manière plus visible que les notifications pour les iframes.