1 pontos por GN⁺ 2023-10-21 | 1 comentários | Compartilhar no WhatsApp
  • Separo um Firefox principal rígido de um Firefox auxiliar que permite JavaScript e mantenho perfis extras do Firefox separados para sites em que preciso permanecer logado por muito tempo
  • No Firefox auxiliar, em vez de usar perfis, altero a variável de ambiente $HOME antes de executar no Unix para isolar tudo completamente, e o uso de forma que cookies e sessões sejam descartados ao fechar
  • Alguns sites exigem autenticação multifator, confirmação por e-mail e logins longos em várias etapas toda vez, então o fluxo de uso fica muito mais lento se eu não mantiver os cookies
  • Nos perfis por site, adiciono uBlock Origin e Cookie AutoDelete e configuro para preservar apenas os cookies necessários, limpando automaticamente o restante
  • O Firefox Multi-Account Containers também pode ser uma alternativa, mas perfis separados facilitam confiar no comportamento porque até as configurações das extensões ficam isoladas

Como separo dois ambientes do Firefox

  • Faço a navegação padrão em um Firefox personalizado
    • Uso configurações e extensões rígidas
    • Na maior parte do tempo, não executo JavaScript
    • Uso sem estar logado em vários sites
  • Para sites que precisam de JavaScript, uso um ambiente separado de Firefox “só faz funcionar”
    • Executa JavaScript
    • Aceita cookies e os envia de volta
    • Ao fechar o navegador, descarta cookies e sessões junto
  • Esse ambiente auxiliar não é um perfil do Firefox, mas uma implementação baseada em trocar a variável de ambiente $HOME antes da execução no Unix
    • O Firefox segue $HOME no Unix
    • Os dois ambientes ficam completamente separados, evitando problemas em potencial

Perfis por site para serviços que exigem manter login

  • Alguns sites exigem JavaScript e login ao mesmo tempo, mas o processo de login é excessivamente incômodo
    • Exigem autenticação multifator com token físico toda vez
    • Enviam e-mail a cada login
    • Obrigam a passar por um processo de login longo e lento, com várias etapas
  • Para esses sites, é preciso manter os cookies de login para fazer login o mínimo possível
    • Alguns sites têm permissões importantes, então é desconfortável navegar casualmente em outros lugares enquanto se está logado
  • A solução é criar perfis extras por site dentro da configuração do Firefox com JavaScript
    • Mantenho um perfil para cada site problemático
    • Em cada perfil, instalo o conjunto padrão de complementos do Firefox
    • Os complementos centrais são uBlock Origin e Cookie AutoDelete
  • O Cookie AutoDelete é configurado para manter apenas os cookies necessários para aquele site ou sites relacionados e limpar o restante
    • Cookies extras surgem ao visitar outros lugares seguindo links daquele site, por exemplo
    • No começo, é preciso algum trabalho para descobrir quais cookies de um site devem ser preservados
    • Depois de configurados, esses perfis funcionam de forma estável
  • Também é possível limitar em cada perfil os sites em que o JavaScript pode ser usado, mas na prática isso dá trabalho demais
  • O Firefox Multi-Account Containers também é uma opção, mas prefiro perfis separados
    • A configuração inicial pode exigir mais trabalho
    • Os perfis ficam totalmente isolados entre si, inclusive nas configurações das extensões
    • Nos contêineres, a interação entre vários elementos pode variar conforme a situação
  • Entre os complementos que costumo adicionar estão Foxy Gestures, Cookie Quick Manager e Certainly Something
    • O Foxy Gestures é uma parte importante da experiência de uso do Firefox
    • O Certainly Something é usado para verificar certificados TLS
    • Em alguns perfis, também acumulei complementos extras para mitigar rastreamento
    • Mais recentemente, também instalei botões de bookmarklet para readable e fixed

1 comentários

 
GN⁺ 2023-10-21
Opiniões no Hacker News
  • A verdadeira joia do Firefox são os Containers. Outros navegadores não têm algo assim, e isso faz uma falta crucial no Chrome
    Não se trata simplesmente de “abrir uma janela privativa”, mas de poder criar 1 + praticamente infinitos perfis/contêineres. No Firefox há a extensão Temporary Containers, que cria um contêiner temporário para cada nova aba e, por padrão, mantém tudo isolado. Configurei para que, ao segurar Ctrl e clicar em um link, ele abra em uma nova aba do mesmo contêiner existente, e só junto as sessões quando quero. Com Proxy Containers, também é possível usar rotas de proxy diferentes por aba
    O Chrome e suas ferramentas de desenvolvedor têm muitas vantagens, e mesmo que a Mozilla tenha causado vários problemas, respeito mais a missão do Firefox. Mas, independentemente dos prós e contras, estou preso ao Firefox porque ele é o único navegador que permite fazer esse tipo de coisa

    • Alguns dias atrás fiz uma apresentação curta em que precisava entrar em várias contas da AWS, mas as pessoas se interessaram mais por como eu abria e alternava entre várias contas da AWS em abas diferentes do que pelo conteúdo da apresentação em si
      Uso um add-on que cria automaticamente um novo contêiner para cada conta da AWS aberta na tela de SSO. Quando digito gmail no navegador, aparecem 3 contas e, dependendo da conta escolhida, ela abre no contêiner correto, então consigo manter as três contas abertas ao mesmo tempo sem complicação
    • Usei contêineres por um tempo, mas achei que eram bem limitados
      Por exemplo, não dá para editar a lista de sites de um contêiner; só é possível adicionar o FQDN carregado no momento. Não dá para atribuir *.google.com ao contêiner do Google; é preciso abrir cada subdomínio de fato e adicioná-los um por um
      Pior ainda: se o host que você quer adicionar estiver no meio de uma cadeia de redirecionamentos, parece não haver como adicioná-lo. mail.google.com vai para accounts.google.com e depois volta rapidamente para mail.google.com, mas não há como colocar accounts.google.com na lista. Por isso, o recurso de “limitar apenas aos sites designados” ficou praticamente inutilizável. Parece que a Mozilla achou que colocar um botão de adicionar e um campo de texto na lista de sites seria demais para o usuário
      Também não dá para limpar cookies e dados de sites escolhendo apenas um contêiner, nem limpar só o contêiner padrão sem mexer nos contêineres nomeados, o que frequentemente era inconveniente. No fim, comprei mais RAM e voltei a usar perfis separados
    • Colocar Containers no Chrome provavelmente não faria muito sentido. Afinal, o Google pode acessar tudo de qualquer maneira
      É parecido com instalar uma VPN no Android e continuar usando coisas como Maps logado na conta do Google. O Chrome não tem privacidade por projeto
      Essa distinção é importante quando se fala de Firefox e Chrome ao mesmo tempo. Compará-los do ponto de vista de privacidade é como comparar maçãs e laranjas
    • A extensão Temporary Containers não está mais sendo mantida: https://github.com/stoically/temporary-containers/issues/618
    • Firefox Containers é conceitualmente excelente, mas a UI/UX parece um pouco aquém. Seria bom se desse para organizar de forma limpa, como os Spaces do Arc
  • Os perfis do Firefox são muito subestimados e, na prática, parecem ser pouco usados
    Crio um atalho para cada perfil e deixo o comando de execução como firefox --no-remote -P profilenamehere. Assim quase nunca preciso ver a caixa de diálogo de gerenciamento de perfis, e acabo usando cada perfil como se fosse um navegador separado
    É prático para separar navegação de trabalho e pessoal, e também é bom para testar extensões diferentes. Por exemplo, dá para colocar o Treestyletabs em um perfil e o Sidebery em outro, para avaliar os dois na prática. O uso de memória com dois perfis do Firefox abertos também é muito menor do que manter o Firefox e um navegador baseado em Chromium abertos juntos

    • Não gosto muito de perfis. Parecia difícil ou impossível fazer os links engraçados enviados por amigos no Discord abrirem no perfil Personal, e os links de trabalho do Slack abrirem no perfil Professional
      No fim, criei um atalho de teclado que alternava entre um arquivo de configuração de perfil e dois links simbólicos, e ainda adicionei uma extensão do Gnome que mostrava o perfil selecionado na barra superior. Eu usava um perfil durante o expediente e outro à noite, mas era lento, difícil de migrar para outro computador e, no geral, uma bagunça
      Agora uso os contêineres do Firefox e, em geral, estou satisfeito. Só gostaria que a barra de favoritos também mudasse conforme a aba selecionada no momento
    • Sinceramente, o fato de precisar mexer nos argumentos de execução provavelmente é exatamente o motivo de ser tão pouco usado
    • É uma pena que a extensão de troca de perfis exija a instalação de um app local
      O Firefox deveria integrar esse recurso direito: https://addons.mozilla.org/en-GB/firefox/addon/profile-switc...
    • Dica útil. Preciso acessar várias contas Microsoft Live/AD/Teams, e isso não funciona bem na mesma sessão do navegador
      Por isso tenho separado tudo com perfis do Chrome. Eu achava os perfis do Firefox meio rudimentares, e estranhamente nunca tinha pensado em criar atalhos por perfil
    • Para avaliar Treestyletabs e Sidebery, não é necessário colocá-los em navegadores ou perfis separados. Dá para trocar na hora qual extensão vai ocupar a barra lateral
      Uso Grasshopper[1] junto com Tab Center Reborn ou Sidebery, alternando conforme os recursos de que preciso no momento
      [1]https://news.ycombinator.com/item?id=37306058
  • Sou usuário desde o Firefox 0.9. Pelas reações aqui, parece haver muito carinho pelo Firefox.
    Mas a UI de perfis e a experiência de gerenciamento são realmente péssimas em comparação com Chrome/Edge. Abas em contêiner não são substituto. Perfis de trabalho e pessoais nem sequer compartilham favoritos. Sei que existem add-ons de terceiros que exigem instalação de software adicional, mas isso na verdade evidencia ainda melhor o problema.
    Esse problema já foi reportado 13 anos atrás: https://bugzilla.mozilla.org/show_bug.cgi?id=662025
    Por isso, hoje uso Firefox só para uso pessoal, e no resto uso perfis do Chrome/Edge. O único motivo de eu continuar no Firefox é a versão para Android. Se uBlock Origin funcionasse no Edge/Chrome no Android, acho que provavelmente abandonaria o Firefox.

    • O Safari fez um trabalho muito bom nessa parte de implementação de perfis. Favoritos, histórico e sessões ficam separados, e há até grupos de abas separados. O Firefox também não está tão longe disso; parece que bastaria polir a experiência.
    • Escolher abas em contêiner em vez de um sistema de perfis renovado foi uma decisão ruim do Firefox. Por causa disso, ele vai continuar ficando para trás.
    • Antes do Firefox Quantum, ou seja, antes de abandonarem os add-ons baseados em XUL, add-ons de terceiros conseguiam facilitar a troca de perfis.
      Hoje quase não uso perfis do Firefox, e no Chrome uso 5 ou 6 perfis para vários fins. Porque é muito mais fácil.
    • Será que é tão ruim assim digitar about:profiles na barra de endereços e escolher o perfil desejado? Ou então criar um atalho com a opção -p e escolher ao iniciar o Firefox.
      Estou sinceramente curioso para saber que parte oferecida por Chrome/Edge faz uma diferença decisiva.
    • No Android, às vezes uso o Kiwi Browser, que consegue carregar o uBlock Origin.
  • Acho que eu ficaria satisfeito se a Mozilla permitisse escolher quais extensões ativar por contêiner.
    [1] https://addons.mozilla.org/en-US/firefox/addon/multi-account...

    • Seria bom se, ao abrir um site, ele perguntasse qual contêiner escolher entre os contêineres lembrados. Por exemplo, entre 15 contêineres, uso certo site em apenas 2 deles, então, ao abrir uma nova instância, gostaria que me deixasse escolher só entre esses dois, não entre todos.
    • Há algum motivo para não usar about:profiles?
    • Fico curioso sobre o caso de uso desse recurso.
    • Isso é possível com contas de usuário no nível do sistema operacional.
  • Uso bastante perfis do Firefox, mas quero basicamente dois recursos.
    Primeiro, deveria ser possível dar diferenças visuais, como cores, para distinguir melhor os perfis. Quando se deixa navegadores de vários perfis abertos ao mesmo tempo, é fácil se confundir.
    Segundo, a UX ao abrir por engano um perfil que já está em execução deveria melhorar. Hoje ele espera um timeout e depois mostra uma mensagem de erro. Em vez disso, bastaria dar foco à janela que já está em execução.

    • A diferenciação visual se resolve perfeitamente simplesmente usando temas diferentes.
    • Para diferenciar, uso https://color.firefox.com/. É um sistema de temas bem decente que a Mozilla criou alguns anos atrás, divulgou por mais ou menos uma semana e nunca mais mencionou.
      Talvez porque quisessem promover mais aqueles temas idiotas que desaparecem sozinhos, isto é, os “Colorways drops”.
    • Resolvi ambos os problemas criando entradas .desktop separadas para cada perfil e colocando temas e ícones personalizados em cada uma.
      Assim, no gerenciador de janelas dá para saber qual perfil está aberto e, pelo tema, qual perfil se está vendo no momento. Dá para iniciar um perfil específico pelo ícone, ou apertar Super e digitar ffwork, ou, se já estiver aberto, clicar com o botão direito e abrir uma nova janela.
      O principal problema é que, mesmo depois de fazer isso várias vezes em várias máquinas, toda vez esqueço como se faz. Nunca lembro qual combinação de flags do Firefox e valores de .desktop é necessária. Acho que este link é o correto: https://askubuntu.com/questions/1209434/how-to-display-two-d...
    • Uma forma que dá para usar agora mesmo é usar áreas de trabalho virtuais separadas e colocar cada perfil em uma área de trabalho diferente. É preciso um pouco de disciplina para não se enganar.
    • O motivo de eu usar perfis do Brave é justamente essa distinção visual. Dá para colocar cores diferentes no ícone da barra de tarefas e no chrome do navegador; foi por isso que experimentei o Brave pela primeira vez, e agora virou um recurso sem o qual não consigo viver.
  • No Chrome/macOS, mantenho várias instâncias e uma instância separada para cada cliente/entidade e atividade específica.
    Cada navegador tem extensões e regras de bloqueio de anúncios diferentes. Por exemplo, não consigo entrar no Hacker News a não ser pelo navegador de redes sociais. O navegador principal de desenvolvimento tem mais extensões de desenvolvimento.
    O gerenciamento de abas também fica mais fácil. Basta fechar o “navegador de trabalho”. Todos têm instâncias, ícones e cores separados. Mesmo que eu tente acessar por hábito sites que desperdiçam tempo, se não for pelo navegador de mídia, dá erro, então isso ajuda na concentração.
    Não foi fácil fazer tudo funcionar perfeitamente. Precisei criar várias instâncias do Chrome, o que significa que também precisei assinar os apps. Todos os perfis e dados de apps ficam em pastas separadas. Sem fazer isso, não dá para alternar para outro navegador com cmd-tab.

    • Uso a mesma abordagem e estendi esse hábito ao celular.
      Para navegar por diversão, uso o Firefox normal para Android com extensões como o Ublock Origin; quando quero navegar sempre em modo privado, uso o Firefox Beta com as mesmas extensões; e para trabalho uso o Chrome.
      Também experimentei perfis, mas eram cansativos demais de lidar. Especialmente por causa da forma como o macOS trata várias janelas do mesmo aplicativo.
    • O Brave lida perfeitamente com perfis. Também tem cadeia de sincronização, então não é preciso conta online. Infelizmente, o navegador móvel só tem um perfil, o que é irritante. Não deve ser tão difícil de implementar.
  • Não nego que os perfis do Firefox sejam ótimos. E desativar JavaScript também é muito importante, por isso usei o NoScript por muito tempo
    Mas ficar alternando entre dois perfis para ligar/desligar JavaScript parece um transtorno enorme. No NoScript, basta pressionar shift+t para liberar temporariamente as restrições daquela aba
    O que o NoScript bloqueia principalmente são abas desconhecidas e inesperadas abertas por malware. Mas, em sites grandes como The Register ou Etsy, dá para desativá-lo enquanto você faz o que precisa
    Um recurso que eu realmente gostaria que o NoScript tivesse é desativação global por domínio. Isso porque a AWS usa subdomínios aleatórios do CloudFront ao incluir assets. Não quero colocar *.cloudfront na lista de permissões. Afinal, qualquer um pode hospedar malware por ali

    • Vale a pena conferir o uMatrix e o uBlock Origin
  • Um fato interessante: usando a flag --class, dá para atribuir uma classe de janela X diferente a cada instância do Firefox. Assim, você pode configurar o gerenciador de janelas para trazer para frente as janelas dessa classe
    Por exemplo, na configuração do StumpWM, deixei algo assim:
    (defcommand javascript-firefox ()
    (run-or-raise "firefox -P Javascript --class Firefox-javascript" '(:class "Firefox-javascript")))
    (define-key *top-map* (kbd "H-F") "javascript-firefox")
    Então, ao digitar apenas hyper-shift-f, se o Firefox para JavaScript já existir, ele é trazido para frente; se não, é iniciado. Enquanto isso, hyper-f traz o Firefox normal
    Recomendo muito. Espero poder continuar usando isso no futuro. O Wayland também oferece suporte a classes de janela e à tecla hyper?

  • Comecei a usar essa abordagem recentemente e também mudei o tema dos perfis do Firefox para me lembrar de que preciso fechar todas as janelas
    A sensação de manter tudo separado é satisfatória, e também é bem útil para executar certas coisas como apps restritos no ambiente desktop
    Há muito espaço para melhorar. Por exemplo, talvez seja possível fazer crowdsourcing de permissões no estilo Android/iOS por site

  • Pode ser uma opinião impopular, mas acho que a época em que JavaScript era um elemento opcional da web já passou. Agora ele é um componente intrínseco dela
    Precisamos aceitar que não dá para voltar à época sem JavaScript. Em vez de convencer sites a criarem versões sem scripts, precisamos encontrar soluções para tornar JavaScript seguro. Não sei qual é a resposta, mas sandboxing, domínios de segurança e modelos de permissões ricos valem ser considerados

    • Pelo menos se o seu modelo de ameaça inclui evitar um panóptico de vigilância global, JavaScript não pode ser seguro
      Permitir execução de código arbitrário por padrão não pode ser seguro
      90% dos usos de JavaScript são completamente desnecessários e só fazem sentido na web movida por anúncios
    • Quando vejo alguém falando em navegar na web com JavaScript desativado, fico curioso para saber como é essa experiência
      Não quero desdenhar, mas simplesmente não consigo imaginar como seriam meus hábitos de navegação sem JavaScript. Talvez pareça pior do que realmente é
    • Não está errado dizer que JavaScript é quase obrigatório na prática, mas ainda assim é um padrão de facto. Torná-lo oficialmente obrigatório é errado
      Infelizmente, a web regrediu para um estado ainda pior do que JavaScript. Ela está caminhando para oferecer suporte apenas a um navegador específico: o Chrome. Um exemplo recente: no site da Air India, não dá para reservar passagens pelo Firefox, mas no Chrome dá
    • Uso Qubes OS, então posso executar várias instâncias sandbox do Firefox com bordas de janela coloridas
      Como cada Firefox roda dentro de sua própria VM sem dados, executo JavaScript sem medo