1 points par GN⁺ 2023-10-21 | 1 commentaires | Partager sur WhatsApp
  • J’utilise séparément un Firefox principal strict et un Firefox secondaire pour les sites qui autorisent JavaScript, et je garde des profils Firefox supplémentaires distincts pour les sites où il faut rester connecté longtemps
  • Le Firefox secondaire n’utilise pas un profil mais un changement de la variable d’environnement $HOME avant l’exécution sous Unix, afin d’être complètement isolé, et sert à supprimer cookies et sessions à la fermeture
  • Certains sites exigent à chaque fois une authentification multifacteur, une confirmation par e-mail et une longue procédure de connexion en plusieurs étapes, ce qui ralentit fortement l’usage si les cookies ne sont pas conservés
  • Dans les profils dédiés à chaque site, j’installe uBlock Origin et Cookie AutoDelete afin de ne conserver que les cookies nécessaires et de supprimer automatiquement le reste
  • Firefox Multi-Account Containers peut aussi être une alternative, mais des profils séparés inspirent davantage confiance car même les réglages des extensions y sont isolés

Ma façon de séparer deux environnements Firefox

  • La navigation par défaut se fait dans un Firefox personnalisé
    • Avec des réglages et des extensions stricts
    • JavaScript n’y est généralement pas exécuté
    • Je l’utilise sans être connecté à la plupart des sites
  • Pour les sites qui ont besoin de JavaScript, j’utilise un environnement Firefox séparé, « just make it work »
    • JavaScript y est exécuté
    • Les cookies sont acceptés puis renvoyés
    • Quand je ferme le navigateur, cookies et sessions sont supprimés
  • Cet environnement secondaire n’est pas basé sur un profil Firefox, mais sur un changement de la variable d’environnement $HOME avant le lancement sous Unix
    • Firefox suit $HOME sous Unix
    • Les deux environnements sont ainsi totalement séparés, ce qui évite des problèmes potentiels

Profils par site quand il faut rester connecté

  • Certains sites web ont besoin à la fois de JavaScript et d’une connexion, mais la procédure de connexion est excessivement pénible
    • Ils exigent à chaque fois une authentification multifacteur avec un jeton physique
    • Ils envoient un e-mail à chaque connexion
    • Il faut passer par une longue procédure de connexion lente en plusieurs étapes
  • Pour ces sites, il faut conserver les cookies de connexion afin d’éviter de se reconnecter trop souvent
    • Certains sites donnent accès à des autorisations importantes, donc il est gênant d’y rester connecté tout en naviguant ailleurs de façon légère
  • La solution consiste à créer des profils supplémentaires par site dans la configuration Firefox avec JavaScript
    • Un profil par site pénible
    • J’installe dans chaque profil un ensemble standard de modules complémentaires Firefox
    • Les modules complémentaires essentiels sont uBlock Origin et Cookie AutoDelete
  • Cookie AutoDelete est configuré pour ne garder que les cookies nécessaires à ce site ou à ses sites associés, et supprimer le reste
    • Des cookies supplémentaires apparaissent lorsqu’on suit des liens depuis ce site vers d’autres endroits, par exemple
    • Au début, il faut consacrer un peu de temps à identifier quels cookies doivent être conservés pour chaque site
    • Une fois configurés, ces profils fonctionnent de manière stable
  • On pourrait aussi limiter, dans chaque profil, les sites autorisés à exécuter JavaScript, mais en pratique c’est trop fastidieux
  • Firefox Multi-Account Containers est aussi possible, mais je préfère nettement les profils séparés
    • La configuration initiale peut demander plus de travail
    • Les profils sont complètement séparés entre eux, y compris pour les réglages des extensions
    • Avec les containers, l’interaction entre plusieurs éléments peut varier selon la situation
  • Parmi les modules complémentaires que j’ajoute en général, il y a Foxy Gestures, Cookie Quick Manager et Certainly Something
    • Foxy Gestures est un élément important de mon expérience d’utilisation de Firefox
    • Certainly Something sert à vérifier les certificats TLS
    • Certains profils ont aussi accumulé des modules complémentaires supplémentaires pour réduire le pistage
    • Récemment, j’ai aussi installé des boutons de bookmarklet pour readable et fixed

1 commentaires

 
GN⁺ 2023-10-21
Avis sur Hacker News
  • Le vrai joyau de Firefox, ce sont les Containers. Aucun autre navigateur n’a quelque chose de ce genre, et c’est un manque crucial dans Chrome
    Il ne s’agit pas simplement de « ouvrir une fenêtre privée », mais de pouvoir créer 1 profil/conteneur + en pratique une infinité d’autres. Firefox dispose de l’extension Temporary Containers, qui crée un conteneur temporaire pour chaque nouvel onglet et isole par défaut. Je l’ai configurée pour qu’un clic sur un lien en maintenant Ctrl ouvre un nouvel onglet dans le même conteneur existant, et je ne fusionne les sessions que lorsque je le souhaite. Avec Proxy Containers, il est aussi possible d’utiliser des routes de proxy différentes selon les onglets
    Chrome et ses outils de développement ont beaucoup d’atouts, et même si Mozilla a causé plusieurs problèmes, je respecte davantage la mission de Firefox. Mais, indépendamment des avantages et inconvénients, je reste attaché à Firefox parce que c’est le seul navigateur qui permet de faire ce genre de choses

    • Il y a quelques jours, j’ai fait une courte présentation où je devais me connecter à plusieurs comptes AWS, et les gens se sont montrés plus intéressés par la manière dont j’ouvrais et basculais entre plusieurs comptes AWS dans différents onglets que par le contenu de la présentation lui-même
      J’utilise un add-on qui crée automatiquement un nouveau conteneur pour chaque compte AWS ouvert depuis l’écran SSO. Quand je saisis gmail dans le navigateur, trois comptes apparaissent, et selon celui que je choisis, il s’ouvre dans le bon conteneur ; je peux donc garder les trois comptes ouverts en même temps sans friction
    • J’ai utilisé les conteneurs pendant un temps, mais je les ai trouvés assez insuffisants
      Par exemple, on ne peut pas modifier la liste des sites d’un conteneur, et on ne peut ajouter que le FQDN actuellement chargé. Impossible d’assigner *.google.com au conteneur Google : il faut ouvrir effectivement chaque sous-domaine, puis les ajouter un par un
      Pire encore, si l’hôte à ajouter se trouve au milieu d’une chaîne de redirections, il semble impossible de l’ajouter. mail.google.com va vers accounts.google.com puis revient rapidement à mail.google.com, mais il n’y a aucun moyen de mettre accounts.google.com dans la liste. Du coup, la fonction « limiter uniquement aux sites désignés » était quasiment inutilisable. Mozilla a apparemment estimé qu’ajouter un bouton et un champ de saisie texte à la liste des sites serait trop demander aux utilisateurs
      Autre gêne fréquente : impossible de supprimer les cookies et données de site pour un seul conteneur, ou de vider seulement le conteneur par défaut sans toucher aux conteneurs nommés. Au final, j’ai acheté plus de RAM et je suis revenu à des profils séparés
    • Ajouter Containers à Chrome n’aurait probablement pas grand intérêt dans l’ensemble. De toute façon, Google a accès à tout
      C’est un peu comme installer un VPN sur Android tout en restant connecté à son compte Google et en continuant à utiliser des choses comme Maps. Chrome n’a pas de confidentialité par conception
      Cette distinction est importante quand on parle de Firefox et de Chrome dans le même souffle. Les comparer sous l’angle de la vie privée revient à comparer des pommes et des oranges
    • L’extension Temporary Containers n’est plus maintenue : https://github.com/stoically/temporary-containers/issues/618
    • Firefox Containers est excellent sur le plan conceptuel, mais son UI/UX paraît un peu insuffisant. J’aimerais pouvoir l’organiser proprement comme les Spaces d’Arc
  • Les profils Firefox sont beaucoup trop sous-estimés, et semblent aussi trop peu utilisés en pratique
    Je crée un raccourci pour chaque profil et je mets comme commande de lancement firefox --no-remote -P profilenamehere. Ainsi, je n’ai presque jamais à voir la boîte de dialogue de gestion des profils, et chaque profil s’utilise comme un navigateur séparé
    C’est pratique pour séparer la navigation professionnelle et personnelle, et aussi pour tester différentes extensions. Par exemple, on peut mettre Treestyletabs dans un profil et Sidebery dans un autre, afin de les évaluer tous les deux directement. La consommation mémoire de deux profils Firefox ouverts est aussi bien inférieure à celle d’un Firefox et d’un navigateur basé sur Chromium ouverts en même temps

    • Je n’aime pas trop les profils. Faire en sorte que les liens drôles envoyés par des amis sur Discord s’ouvrent dans le profil Personal, et les liens professionnels de Slack dans le profil Professional, semblait difficile voire impossible
      J’ai fini par créer un raccourci clavier qui basculait entre un fichier de configuration de profil et deux liens symboliques, puis j’ai même ajouté une extension Gnome affichant le profil actuellement sélectionné dans la barre supérieure. J’utilisais un profil pendant les heures de travail et un autre le soir, mais c’était lent, difficile à transférer sur un autre ordinateur, et globalement bricolé
      Maintenant, j’utilise les conteneurs Firefox et j’en suis globalement satisfait. J’aimerais toutefois que la barre de favoris change aussi selon l’onglet actuellement sélectionné
    • Honnêtement, le fait de devoir toucher aux arguments de lancement est probablement précisément la raison pour laquelle ils sont si peu utilisés
    • C’est dommage que l’extension de changement de profil exige l’installation d’une application locale
      Firefox devrait intégrer correctement cette fonction : https://addons.mozilla.org/en-GB/firefox/addon/profile-switc...
    • Astuce utile. Je dois accéder à plusieurs comptes Microsoft Live/AD/Teams, et ça fonctionne mal dans une même session de navigateur
      Je les séparais donc avec des profils Chrome. Les profils Firefox me semblaient un peu rudimentaires, et, bizarrement, je n’avais jamais pensé à créer des raccourcis par profil
    • Pas besoin de mettre Treestyletabs et Sidebery dans des navigateurs ou profils séparés juste pour les évaluer. On peut changer à la volée quelle extension occupe la barre latérale
      J’utilise Grasshopper[1] avec Tab Center Reborn ou Sidebery, et je bascule selon les fonctionnalités dont j’ai besoin sur le moment
      [1]https://news.ycombinator.com/item?id=37306058
  • J’utilise Firefox depuis la version 0.9. À voir les réactions ici, il semble y avoir beaucoup d’attachement à Firefox.
    Mais l’interface et l’expérience de gestion des profils sont vraiment médiocres par rapport à Chrome/Edge. Les onglets conteneurs ne sont pas une alternative. Mes profils professionnel et personnel ne partagent même pas les marque-pages. Je sais qu’il existe des extensions tierces nécessitant l’installation de logiciels supplémentaires, mais cela illustre encore mieux le problème.
    Ce problème a déjà été signalé il y a 13 ans : https://bugzilla.mozilla.org/show_bug.cgi?id=662025
    Donc aujourd’hui, je n’utilise Firefox que pour un usage personnel, et pour le reste j’utilise les profils Chrome/Edge. La seule raison pour laquelle je reste sur Firefox est sa version Android. Si uBlock Origin fonctionnait dans Edge/Chrome sur Android, j’abandonnerais probablement Firefox.

    • Safari a vraiment bien réussi l’implémentation des profils sur ce point. Les marque-pages, l’historique et les sessions sont séparés, et il y a même des groupes d’onglets distincts. Firefox n’en est pas très loin ; il suffirait sans doute de peaufiner l’expérience.
    • Choisir les onglets conteneurs au lieu d’un système de profils modernisé a été une mauvaise décision de Firefox. C’est pour cela qu’il continuera à prendre du retard.
    • Avant Firefox Quantum, c’est-à-dire avant l’abandon des extensions basées sur XUL, des extensions tierces permettaient de faciliter le changement de profil.
      Aujourd’hui, je n’utilise presque plus les profils Firefox, alors que dans Chrome j’utilise 5 ou 6 profils pour différents usages, parce que c’est beaucoup plus simple.
    • Est-ce vraiment si mauvais de saisir about:profiles dans la barre d’adresse et de choisir le profil voulu ? Ou bien de créer un raccourci avec l’option -p pour choisir au lancement de Firefox.
      Je suis sincèrement curieux de savoir quelle partie de ce que proposent Chrome/Edge fait une différence décisive.
    • Sur Android, j’utilise parfois Kiwi Browser, qui permet de charger uBlock Origin.
  • Je pense que je serais satisfait si Mozilla permettait de choisir quelles extensions activer pour chaque conteneur.
    [1] https://addons.mozilla.org/en-US/firefox/addon/multi-account...

    • Ce serait bien que, lorsqu’on ouvre un site web, il demande de choisir parmi les conteneurs mémorisés. Par exemple, sur 15 conteneurs, j’utilise un site donné seulement dans 2 d’entre eux ; à chaque ouverture d’une nouvelle instance, j’aimerais choisir uniquement entre ces deux-là, pas dans toute la liste.
    • Y a-t-il une raison de ne pas utiliser about:profiles ?
    • Je suis curieux de connaître le cas d’usage de cette fonctionnalité.
    • C’est possible avec des comptes utilisateur au niveau du système d’exploitation.
  • J’utilise beaucoup les profils Firefox, mais j’aimerais surtout deux fonctionnalités.
    Premièrement, il faudrait pouvoir leur donner des différences visuelles, comme des couleurs, afin de mieux les distinguer. Quand on a plusieurs navigateurs ouverts en même temps avec différents profils, il est facile de s’y perdre.
    Deuxièmement, l’UX devrait être améliorée lorsqu’on rouvre par erreur un profil déjà en cours d’exécution. Actuellement, il attend un timeout puis affiche un message d’erreur. À la place, il devrait simplement donner le focus à la fenêtre déjà ouverte.

    • La distinction visuelle se règle parfaitement en utilisant simplement des thèmes différents.
    • Pour les différencier, j’utilise https://color.firefox.com/. C’est un système de thèmes assez réussi que Mozilla a créé il y a quelques années, dont ils ont fait la promotion pendant environ une semaine avant de ne plus jamais en parler.
      Probablement parce qu’ils voulaient davantage promouvoir ces thèmes idiots qui disparaissent d’eux-mêmes, les « Colorways drops ».
    • J’ai résolu ces deux problèmes en créant des entrées .desktop distinctes pour chaque profil, chacune avec son thème et son icône personnalisée.
      Comme ça, je peux voir dans le gestionnaire de fenêtres quel profil est ouvert, et savoir grâce au thème quel profil je suis en train de regarder. Je peux lancer un profil précis avec son icône, appuyer sur Super et saisir ffwork, ou, s’il est déjà ouvert, faire un clic droit puis ouvrir une nouvelle fenêtre.
      Le principal problème, c’est que même après l’avoir refait plusieurs fois sur plusieurs machines, j’oublie à chaque fois comment faire. Je ne me souviens jamais de la combinaison exacte de flags Firefox et de valeurs .desktop nécessaires. Ce lien est probablement le bon : https://askubuntu.com/questions/1209434/how-to-display-two-d...
    • Une solution utilisable dès maintenant consiste à employer des bureaux virtuels séparés et à placer chaque profil sur un bureau différent. Il faut un peu de discipline pour éviter les erreurs.
    • La raison pour laquelle j’utilise les profils Brave, c’est précisément cette distinction visuelle. On peut donner des couleurs différentes à l’icône de la barre des tâches et au chrome du navigateur ; c’est ce qui m’a fait essayer Brave au départ, et maintenant c’est devenu une fonctionnalité dont je ne peux plus me passer.
  • Sur Chrome/macOS, je garde plusieurs instances et une instance séparée pour chaque client/entité et pour certaines activités.
    Chaque navigateur a ses propres extensions et règles de blocage des publicités. Par exemple, je ne peux accéder à Hacker News que depuis mon navigateur « réseaux sociaux ». Mon navigateur principal de développement contient davantage d’extensions de développement.
    La gestion des onglets devient aussi plus simple : il suffit de fermer le « navigateur de travail ». Ils ont tous des instances, icônes et couleurs distinctes. Même si j’essaie par réflexe d’aller sur un site qui fait perdre du temps, cela échoue si je ne suis pas dans le navigateur dédié aux médias, ce qui m’aide à rester concentré.
    Arriver à faire fonctionner tout cela parfaitement n’a pas été simple. J’ai dû créer plusieurs instances de Chrome, ce qui signifie aussi signer les applications. Tous les profils et les données d’application sont placés dans des dossiers séparés. Sans cela, impossible de passer à un autre navigateur avec cmd-tab.

    • J’utilise la même approche et j’ai étendu cette habitude au mobile.
      Pour naviguer pour le plaisir, j’utilise le Firefox Android standard avec des extensions comme Ublock Origin ; pour naviguer toujours en mode privé, j’utilise Firefox Beta avec les mêmes extensions ; et pour le travail, j’utilise Chrome.
      J’ai aussi essayé les profils, mais c’était trop pénible à gérer, surtout à cause de la manière dont macOS traite plusieurs fenêtres d’une même application.
    • Brave gère parfaitement les profils. Il y a aussi une chaîne de synchronisation, donc pas besoin de compte en ligne. Dommage que le navigateur mobile n’ait qu’un seul profil, c’est agaçant. Ce ne devrait pourtant pas être si difficile à implémenter.
  • Je ne nie pas que les profils Firefox soient excellents. Et la désactivation de JavaScript est aussi très importante : j’ai utilisé NoScript pendant très longtemps
    Mais passer d’un profil à l’autre juste pour activer/désactiver JavaScript me semble être une énorme contrainte. Dans NoScript, il suffit d’appuyer sur shift+t pour lever temporairement les restrictions de l’onglet concerné
    Ce que NoScript bloque surtout, ce sont les onglets inconnus et inattendus ouverts par des malwares. Mais sur de gros sites comme The Register ou Etsy, on peut le désactiver le temps de faire ce qu’on a à faire
    La fonctionnalité que j’aimerais vraiment voir dans NoScript, c’est une désactivation globale par domaine. AWS utilise des sous-domaines CloudFront aléatoires quand il inclut des ressources. Je n’ai pas envie de mettre *.cloudfront sur liste blanche. N’importe qui pourrait y héberger des malwares

    • Ça vaut le coup de jeter un œil à uMatrix et uBlock Origin
  • Fait amusant : avec le flag --class, on peut attribuer une classe de fenêtre X différente à chaque instance de Firefox. On peut ensuite configurer son gestionnaire de fenêtres pour faire passer au premier plan les fenêtres de cette classe
    Par exemple, dans ma configuration StumpWM, j’ai quelque chose comme ça :
    (defcommand javascript-firefox ()
    (run-or-raise "firefox -P Javascript --class Firefox-javascript" '(:class "Firefox-javascript")))
    (define-key *top-map* (kbd "H-F") "javascript-firefox")
    Ainsi, il suffit de taper hyper-shift-f pour que le Firefox dédié à JavaScript passe au premier plan s’il existe déjà, ou soit lancé sinon. De son côté, hyper-f fait remonter le Firefox normal
    Je recommande vivement. J’espère pouvoir continuer à utiliser ça à l’avenir. Wayland prend-il aussi en charge les classes de fenêtres et la touche hyper ?

  • J’ai commencé récemment à utiliser cette méthode, et j’ai aussi changé le thème des profils Firefox pour me rappeler que je dois fermer toutes les fenêtres
    La séparation donne une impression satisfaisante, et c’est aussi assez utile pour lancer certaines choses comme des applications limitées dans l’environnement de bureau
    Il y a beaucoup de points à améliorer. Par exemple, on pourrait imaginer une approche où les permissions façon Android/iOS seraient crowdsourcées site par site

  • C’est peut-être une opinion impopulaire, mais je pense que l’époque où JavaScript était un élément optionnel du Web est révolue. C’est désormais un composant intrinsèque du Web
    Il faut accepter qu’on ne pourra pas revenir à une époque sans JavaScript. Plutôt que de convaincre les sites de proposer une version sans scripts, il faut trouver des solutions pour rendre JavaScript sûr. Je n’ai pas la réponse, mais le sandboxing, les domaines de sécurité et un modèle de permissions riche méritent d’être envisagés

    • Au moins si votre modèle de menace inclut le fait d’éviter un panoptique mondial de surveillance, JavaScript ne peut pas être sûr
      Autoriser par défaut l’exécution de code arbitraire ne peut pas être sûr
      90 % des usages de JavaScript sont totalement inutiles et n’ont de sens que dans un Web financé par la publicité
    • Quand je lis des gens dire qu’ils naviguent sur le Web avec JavaScript désactivé, je me demande à quoi ressemble cette expérience
      Je ne veux pas balayer ça d’un revers de main, mais j’ai du mal à imaginer ce que deviendraient mes habitudes de navigation sans JavaScript. Peut-être que ça paraît pire que ça ne l’est en réalité
    • Dire que JavaScript est pratiquement indispensable n’est pas faux, mais cela reste un standard de fait. Le rendre officiellement obligatoire serait une erreur
      Malheureusement, le Web a régressé vers quelque chose d’encore pire que JavaScript. Il se dirige vers la prise en charge d’un navigateur particulier, à savoir Chrome. Exemple récent : sur le site d’Air India, il est impossible de réserver un billet avec Firefox, alors que ça fonctionne avec Chrome
    • J’utilise Qubes OS, ce qui me permet d’exécuter plusieurs instances Firefox sandboxées avec des bordures de fenêtres colorées
      Chaque Firefox tourne dans sa propre VM sans données, donc j’exécute JavaScript sans crainte