1 ポイント 投稿者 GN⁺ 2023-10-21 | 1件のコメント | WhatsAppで共有
  • 厳格な既定の Firefox と、JavaScript を許可する補助用 Firefox を分けて使い、ログイン状態を長く維持する必要があるサイトには 追加の Firefox プロファイルを別に用意する
  • 補助用 Firefox はプロファイルではなく、Unix で実行する前に $HOME 環境変数を変更して完全に分離し、終了時に Cookie とセッションを破棄する用途で使う
  • 一部のサイトは毎回 多要素認証、メール確認、長い多段階ログインを要求するため、Cookie を保持しないと利用の流れが大きく遅くなる
  • サイト別プロファイルには uBlock Origin と Cookie AutoDelete を入れ、必要な Cookie だけを保持し、それ以外は自動で整理するよう設定する
  • Firefox Multi-Account Containers も代替になり得るが、別プロファイルなら拡張機能の設定まで分離されるため、挙動をより確信しやすい

2つの Firefox 環境を分けて使う方法

  • 通常のブラウジングは カスタマイズした Firefox で処理する
    • 厳格な設定と拡張機能を使う
    • ほとんど JavaScript を実行しない
    • 多くのサイトにログインしていない状態で使う
  • JavaScript が必要なサイトには、別の 「とにかく動かす」Firefox 環境を使う
    • JavaScript を実行する
    • Cookie を受け取り、再送信する
    • ブラウザを閉じると Cookie とセッションをまとめて破棄する
  • この補助環境は Firefox プロファイルではなく、Unix で実行前に $HOME 環境変数を変更する方法で実装する
    • Firefox は Unix で $HOME に従う
    • 2つの環境が完全に分離され、潜在的な問題を避けられる

ログイン維持が必要なサイト別プロファイル

  • 一部の Web サイトは JavaScript とログインの両方が必要だが、ログイン手順が過度に面倒である
    • 毎回、物理トークンを使った 多要素認証を要求する
    • ログインするたびにメールを送る
    • 長く遅い多段階のログイン手順を通らなければならない
  • こうしたサイトでは、できるだけログイン回数を減らすために ログイン Cookie を保持する必要がある
    • 一部のサイトは重要な権限を持っているため、ログインした状態で他の場所を気軽に閲覧するのは負担がある
  • 解決策は、JavaScript Firefox の設定内に サイト別の追加プロファイルを作ること
    • 面倒な Web サイトごとにプロファイルを1つずつ用意する
    • 各プロファイルには標準的な Firefox アドオン一式をインストールする
    • 中核となるアドオンは uBlock OriginCookie AutoDelete である
  • Cookie AutoDelete は、そのサイトまたは関連サイトに必要な Cookie だけを保持し、それ以外を整理するよう設定する
    • 追加の Cookie は、そのサイトのリンクをたどって別の場所を訪問する過程などで発生する
    • 最初はどのサイトの Cookie を保持すべきかを把握する作業が少し必要になる
    • 設定後は、これらのプロファイルは安定して動作する
  • 各プロファイルで JavaScript を使えるサイトを制限することもできるが、実際には面倒すぎる
  • Firefox Multi-Account Containers も可能だが、別プロファイルのほうを好む
    • 初期設定にはより多くの作業が必要になる場合がある
    • プロファイルは拡張機能の設定を含め、互いに完全に分離される
    • コンテナは複数の要素の相互作用が状況によって変わることがある
  • 一般的に追加するアドオンには Foxy Gestures、Cookie Quick Manager、Certainly Something がある
    • Foxy Gestures は Firefox の利用体験において重要な部分である
    • Certainly Something は TLS 証明書の確認に使う
    • 一部のプロファイルには、トラッキング緩和のための追加アドオンも積み重ねている
    • 最近は readable と fixed 用の bookmarklet ボタンもインストールしている

1件のコメント

 
GN⁺ 2023-10-21
Hacker News のコメント
  • Firefox の真の宝石は Containers です。他のブラウザにはこういうものがなく、Chrome には決定的に欠けています
    単に「プライベートウィンドウを開け」という意味ではなく、1つ+事実上無限のプロファイル/コンテナを作れるという意味です。Firefox には Temporary Containers 拡張があり、新しいタブごとに一時コンテナが作られ、デフォルトで隔離されます。Ctrl を押しながらリンクをクリックすると同じ既存コンテナの新しいタブで開くように設定していて、セッションを統合したいときだけ統合できます。Proxy Containers でタブごとに別のプロキシ経路を使うことも可能です
    Chrome と開発者ツールには多くの利点があり、Mozilla がいろいろ問題を起こしてきたとしても、私は Firefox の使命のほうをより尊重しています。ただ、長所短所に関係なく、こうしたことができる唯一のブラウザなので Firefox に縛られています

    • 数日前、複数の AWS アカウントにログインする必要がある短い発表をしたのですが、発表内容そのものより、別々のタブで複数の AWS アカウントを開いて切り替える方法に人々の関心が集まりました
      SSO 画面で開かれる AWS アカウントごとに新しいコンテナを自動作成するアドオンを使っています。ブラウザに gmail と入力すると3つのアカウントが出てきて、選んだアカウントに応じて正しいコンテナで開くので、3つのアカウントを同時に開いておけて手間がありません
    • コンテナをしばらく使ってみましたが、かなり物足りないと感じました
      たとえばコンテナのサイト一覧を編集できず、現在読み込まれている FQDN しか追加できません。*.google.com を Google コンテナに割り当てることはできず、各サブドメインを実際に開いてから一つずつ追加する必要があります
      さらに悪いことに、追加したいホストがリダイレクトチェーンの途中にある場合、追加する方法がないように見えます。mail.google.comaccounts.google.com に行ってからすぐ mail.google.com に戻りますが、accounts.google.com を一覧に入れる方法がありません。そのため「指定サイトのみに制限」機能は実質的に使えませんでした。サイト一覧に追加ボタンとテキスト入力欄を置くのは、ユーザーには負担が大きすぎると Mozilla が判断したようです
      また、特定のコンテナだけを選んで Cookie とサイトデータを削除したり、名前付きコンテナには触れずにデフォルトコンテナだけを消したりすることもできず、たびたび不便でした。結局 RAM を増やして、別プロファイルに戻りました
    • Chrome に Containers を入れても、だいたい意味がない気がします。どうせ Google がすべてにアクセスできるからです
      Android に VPN を入れておきながら、Google アカウントでログインしたまま Maps のようなものを使い続けるのに似ています。Chrome は設計上プライバシーがありません
      Firefox と Chrome を一緒くたに語るとき、この区別は重要です。プライバシーの観点で両者を比べるのは、リンゴとオレンジを比べるようなものです
    • Temporary Containers 拡張はメンテナンスされていません: https://github.com/stoically/temporary-containers/issues/618
    • Firefox Containers は概念としては素晴らしいものの、UI/UX が少し足りないように感じます。Arc の Spaces のようにすっきり整理できるとよいのですが
  • Firefox プロファイルは過小評価されすぎていて、実際にもあまり使われていないようです
    プロファイルごとにショートカットを作り、実行コマンドを firefox --no-remote -P profilenamehere にします。するとプロファイル管理ダイアログを見ることはほとんどなく、各プロファイルを別々のブラウザのように使えます
    仕事用と個人用のブラウジングを分けるのに便利で、異なる拡張機能を試すのにも向いています。たとえば一方のプロファイルには Treestyletabs を、もう一方には Sidebery を入れて、両方を直接評価できます。Firefox プロファイルを2つ立ち上げたときのメモリ使用量も、Firefox と Chromium 系ブラウザを同時に立ち上げるよりはるかに少ないです

    • プロファイルはあまり好きではありません。Discord で友人が送ってきた面白いリンクは Personal プロファイルで、Slack の仕事リンクは Professional プロファイルで開く、ということをするのが難しいか不可能に見えました
      結局、1つのプロファイル設定ファイルと2つのシンボリックリンクを切り替えるキーボードショートカットを作り、現在選択中のプロファイルをトップバーに表示する Gnome 拡張まで付けました。勤務時間中は一方のプロファイル、夜はもう一方のプロファイルを使うという形でしたが、遅く、別のコンピュータへ移すのも難しく、全体的にごちゃごちゃしていました
      今は Firefox コンテナを使っていて、概ね満足しています。ただ、現在選択中のタブに応じて ブックマークバー も切り替わるとよいのですが
    • 正直、起動引数をいじらなければならない点こそが、あまり使われていない理由である可能性が高いです
    • プロファイル切り替え拡張が ローカルアプリのインストールを要求するのは残念です
      Firefox はこの機能をきちんと統合すべきです: https://addons.mozilla.org/en-GB/firefox/addon/profile-switc...
    • 役に立つヒントです。複数の Microsoft Live/AD/Teams アカウントにアクセスする必要がありますが、同じブラウザセッションではうまく動きません
      そのため Chrome プロファイルで分けてきました。Firefox プロファイルは少し無骨だと感じていて、プロファイル別ショートカットを作るという発想は、なぜかしたことがありませんでした
    • Treestyletabs と Sidebery を評価するために、わざわざ別ブラウザや別プロファイルに置く必要はありません。どの拡張が サイドバー を使うかはその場で切り替えられます
      Grasshopper[1] と Tab Center Reborn または Sidebery を併用し、必要な機能に応じてその都度切り替えています
      [1]https://news.ycombinator.com/item?id=37306058
  • Firefox 0.9 から使っているユーザーです。ここでの反応を見ると、Firefox への愛着が強いように見えます。
    ただし、プロファイル UI と管理体験は Chrome/Edge と比べると本当にひどいです。コンテナータブは代替にはなりません。仕事用と個人用のプロファイルでは、ブックマークすら共有しません。追加ソフトウェアのインストールが必要なサードパーティー製アドオンがあることも知っていますが、むしろ問題をよりはっきり示しています。
    この問題は 13 年前にすでに報告されています: https://bugzilla.mozilla.org/show_bug.cgi?id=662025
    なので今は Firefox を個人用にだけ使い、それ以外は Chrome/Edge のプロファイルを使っています。Firefox に残っている唯一の理由は Android 版です。Android の Edge/Chrome で uBlock Origin が使えるようになったら、おそらく Firefox をやめると思います。

    • Safari はこの点でプロファイル実装が本当にうまくできています。ブックマーク、履歴、セッションが分離され、タブグループまで別にあります。Firefox も大きく遠いわけではなく、体験を磨くだけでよさそうです。
    • 更新されたプロファイルシステムではなくコンテナータブを選んだのは、Firefox の悪い選択でした。このせいで遅れ続けるでしょう。
    • Firefox Quantum 以前、つまり XUL ベースのアドオンを捨てる前は、サードパーティー製アドオンでプロファイル切り替えをもっと簡単にできました。
      今は Firefox のプロファイルはほとんど使わず、Chrome では複数の用途に 5〜6 個のプロファイルを使っています。そのほうがずっと簡単だからです。
    • アドレスバーに about:profiles と入力して、目的のプロファイルを選ぶのはそんなに悪いことでしょうか。あるいは -p オプション入りのショートカットを作って、Firefox 起動時に選べばよいのでは。
      純粋に、Chrome/Edge が提供しているどの部分が決定的な違いなのか気になります。
    • Android ではときどき Kiwi Browser を使っていますが、uBlock Origin を読み込めます。
  • Mozilla がコンテナーごとにどの拡張機能を有効にするか選べるようにしてくれれば満足できそうです。
    [1] https://addons.mozilla.org/en-US/firefox/addon/multi-account...

    • あるウェブサイトを開くとき、記憶されているコンテナーの中から選ぶよう尋ねてくれるとよいです。たとえば 15 個のコンテナーのうち、特定のサイトは 2 個でしか使わないのに、新しいインスタンスを開くたびに全体からではなく、その 2 個の中からだけ選ばせてほしいです。
    • about:profiles を使ってはいけない理由はありますか?
    • その機能のユースケースが気になります。
    • OS レベルのユーザーアカウントなら可能です。
  • Firefox のプロファイルをたくさん使っていますが、大きく 2 つの機能が欲しいです。
    まず、プロファイルをより見分けやすくするために、色のような視覚的な違いを付けられる必要があります。複数プロファイルのブラウザーを同時に開いていると混乱しやすいです。
    次に、すでに実行中のプロファイルを誤って再度開いたときの UX を改善してほしいです。今はタイムアウトを待ってからエラーメッセージを表示します。その代わりに、すでに実行中のウィンドウにフォーカスを当てればよいはずです。

    • 視覚的な区別は、単に別々のテーマを使えば完全に解決します。
    • 区別するために https://color.firefox.com/ を使っています。数年前に Mozilla が作ったかなり良いテーマシステムですが、1 週間ほど宣伝しただけで二度と言及しなくなりました。
      おそらく、勝手に消える馬鹿げたテーマ、つまり「Colorways drops」をもっと宣伝したかったのでしょう。
    • どちらの問題も、プロファイルごとに別々の .desktop エントリーを作り、それぞれにテーマとカスタムアイコンを付ける方法で解決しました。
      そうすると、ウィンドウマネージャーでどのプロファイルが開いているか、テーマを見て今どのプロファイルを見ているかが分かります。アイコンから特定のプロファイルを起動したり、Super を押して ffwork と入力したり、すでに開いていれば右クリックして新しいウィンドウを開いたりできます。
      主な問題は、これを複数のマシンで何度もやり直しているのに、毎回やり方を忘れてしまうことです。Firefox のフラグと .desktop の値のどの組み合わせが必要なのか、いつも思い出せません。おそらくこのリンクが正しいと思います: https://askubuntu.com/questions/1209434/how-to-display-two-d...
    • 今すぐできる方法としては、別の仮想デスクトップを使い、プロファイルごとに別のデスクトップに置くことがあります。間違えないようにするには、少し規律が必要です。
    • Brave のプロファイルを使う理由は、まさにその視覚的な区別です。タスクバーアイコンとブラウザークロームに別々の色を付けられるので Brave を初めて使ってみたのですが、今ではなくてはならない機能になりました。
  • クライアント/主体と特定の活動ごとに、Chrome/macOS で複数のインスタンスと 1 つのインスタンスを分けています。
    各ブラウザーは互いに異なる拡張機能と広告ブロックルールを持っています。たとえば、ソーシャルメディア用ブラウザーでなければ Hacker News に入れません。メインの開発用ブラウザーには開発用拡張機能がより多く入っています。
    タブ管理も楽になります。単に「仕事用ブラウザー」を閉じればよいのです。すべて別インスタンス、別アイコン、別の色を持っています。習慣的に時間を浪費するサイトに入ろうとしても、メディア用ブラウザーでなければエラーになるので、集中に役立ちます。
    完璧に動くようにするのは簡単ではありませんでした。Chrome インスタンスを複数作る必要があり、それはアプリに署名もしなければならないということです。すべてのプロファイルとアプリデータは別フォルダーに置いています。こうしないと cmd-tab で別のブラウザーに切り替えられません。

    • 同じアプローチを使い、その習慣をモバイルにも広げています。
      遊びでブラウジングするときは Ublock Origin のような拡張機能を入れた通常の Android Firefox を使い、常にプライベートモードでブラウジングするときは同じ拡張機能を入れた Firefox Beta を使い、仕事は Chrome で処理しています。
      プロファイルも試しましたが、扱うのがあまりに面倒でした。特に macOS が同じアプリケーションの複数ウィンドウを扱う方法のせいで、なおさらでした。
    • Brave はプロファイルを完璧に扱います。同期チェーンもあるのでオンラインアカウントは不要です。残念ながらモバイルブラウザーにはプロファイルが 1 つしかなく、いら立ちます。実装は難しくないはずなのですが。
  • Firefox プロファイルが素晴らしいことは否定しない。そして JavaScript の無効化も非常に重要なので、NoScript をかなり長く使ってきた。
    ただ、JavaScript の有効/無効を切り替えるために2つのプロファイルを行き来するのは、ものすごく面倒に見える。NoScript なら shift+t を押すだけで、そのタブの制限を一時的に解除できる。
    NoScript が主に防いでくれるのは、マルウェアが開いてしまった予期しない不明なタブだ。一方で The Register や Etsy のような大手サイトでは、必要な作業をしている間はオフにできる。
    NoScript にぜひ欲しい機能は、ドメインごとにグローバルに無効化する機能だ。AWS がアセットを読み込む際にランダムな CloudFront サブドメインを使うためだ。*.cloudfront を許可リストに入れたいわけではない。誰でもそれを使ってマルウェアをホストできるから。

    • uMatrix と uBlock Origin を確認してみるとよい
  • 面白いことに、--class フラグを使うと、それぞれの Firefox インスタンスに異なる X ウィンドウクラスを指定できる。そうすると、ウィンドウマネージャを設定して、そのクラスのウィンドウを最前面に持ってこられる。
    たとえば StumpWM の設定にこんなふうに入れている:
    (defcommand javascript-firefox ()
    (run-or-raise "firefox -P Javascript --class Firefox-javascript" '(:class "Firefox-javascript")))
    (define-key *top-map* (kbd "H-F") "javascript-firefox")
    すると hyper-shift-f と入力するだけで、JavaScript 用の Firefox がすでにあれば前面に出て、なければ起動する。一方、hyper-f は通常の Firefox を前面に出す。
    強くおすすめする。今後も使い続けられるといい。Wayland もウィンドウクラスと hyper キーをサポートしているのだろうか?

  • 最近このやり方を始め、Firefox プロファイルの テーマも変えて、すべてのウィンドウを閉じる必要があることを思い出せるようにした。
    分離している感じが心地よく、デスクトップ環境でいくつかのものを制限付きアプリのように動かすにもかなり便利だ。
    もっと改善できる点は多い。たとえば、Web サイトごとに Android/iOS 風の権限をクラウドソーシングするやり方も可能そうだ。

  • 人気のない考えかもしれないが、JavaScript が Web の任意要素だった時代は過ぎたと思う。今では Web の 内在的な構成要素だ。
    JavaScript がなかった時代には戻れないことを受け入れるべきだ。Web サイトに非スクリプト版を作るよう説得するより、JavaScript を安全にする解決策を探すべきだと思う。正解は分からないが、サンドボックス化、セキュリティドメイン、豊かな権限モデルは検討する価値がある。

    • 少なくとも脅威モデルに、地球規模の監視パノプティコンを避けることが含まれるなら、JavaScript は安全ではありえない
      デフォルトで任意コード実行を許すことは安全ではありえない。
      JavaScript の用途の90%は完全に不要で、広告ベースの Web でしか筋が通らない。
    • JavaScript をオフにして Web を閲覧するという話を見ると、その体験がどんなものか気になる。
      軽視するつもりはないが、自分のブラウジング習慣で JavaScript がなかったらどうなるのか、まったく想像できない。実際より悪く聞こえているだけなのかもしれない。
    • JavaScript が事実上ほぼ必須だというのは間違っていないが、あくまで デファクトスタンダードだ。公式に必須として強制するのは間違っている。
      残念ながら Web は JavaScript よりさらに悪い状態へ退行している。特定のブラウザ、つまり Chrome だけをサポートする方向に進んでいる。最近の例では、Air India の Web サイトでは Firefox だと航空券を予約できないが、Chrome ではできる。
    • Qubes OS を使っているので、色付きのウィンドウ枠が付いた複数の サンドボックス化された Firefox インスタンスを実行できる。
      それぞれの Firefox がデータのない自分専用の VM の中で動くので、JavaScript を恐れずに実行している。