「ほっ」と。キャンペーン

[firefox]cookieフィルタを一括指定

はじめに


webブラウジングをする際、
自分に不要なcookieは拒否したい派です。
サービスを使うのに必要最低限のcookieだけを取得したいです。
普段は基本的にすべてのcookieを拒否していますが、
新しいサービスを使うときは
どんなcookieが必要なのかわからないので、
とりあえず全部のcookieを取得して、
それから取捨選択します。
自分には不要ぽいのは今後はずーっと拒否したい。

以前のfirefoxは、
そのつどプロンプトが出てきて、
取得するcookieと保存期間を指定できたのですが、
そのプロンプトを出す設定がなくなりました
(firefox ver.44くらいから?)。
network.cookie.lifetimePolicy=1 に設定すると出るらしいのですが、
設定してもプロンプトが出ません。

firebugなんかで食わされたcookieを見てみると、
たくさんのcookieが並びます。
firefoxのcookieフィルタは指定が1件ずつなので、
これをすべて拒否指定することを考えると、気が遠くなります。
ブラックリストを一括で指定できたらいいのに。

アドオンを探してみましたが、見当たりません。
そういうニーズないのかな。
ちゃんとcookie取得するなんて、良い人が多いんだなぁ。

というわけで、自分の環境で指定する方法を見つけてみました。

方法を3行で説明



・cookie を取得したくないブラックリストcsvを作成
・アドオン SQLite Manager を使用
・自プロファイルディレクトリ以下 permissions.sqlite にインポート

SQLでcsvを突っ込むという作戦です。
上手く行きました。
大分アレだけど。

方法を詳細に説明



■【1】アドオン SQLite Manager をインストール

https://addons.mozilla.org/ja/firefox/addon/sqlite-manager/

他の方法は試してません。
他の方法が良い場合は、ごめんなさい。

■【2】SQLite Managerで設定テーブルの最大IDを取得
SQLite Managerで設定テーブルの最大IDを取得
ブラックリストの項目に連番を付与する必要があります。
ので、現在の最大 ID 番号を見つけておきます。

念のため、ここで
自プロファイルディレクトリ以下の permissions.sqlite をコピーして
バックアップを取っておきます。

DBを直接いじるので、firefoxが起動しなくなる可能性もあります。

SQLite Manager を起動し permissions.sqlite を開きます。

左ペインで、Tables -> moz_perms を選択します。
「参照と検索」タブをクリックして、最後のデータを見ると、
現在の最大の ID が分かります。

「SQL実行」タブで、以下のように実行してもいいです。
SELECT max(id) FROM moz_perms;


この場合 973 ですね。



■【3】ブラックリストcsvを作成

以下のような感じのブラックリストcsvを作ります。
先頭の ID カラムは、前項で得た ID 最大値より大きい数値から始めて
連番を振ってください。

974,http://blacklist.example.com,cookie,2,0,0,0
975,https://blacklist.example.com,cookie,2,0,0,0


4カラム目の「2」は「拒否」の意味ぽいです。
詳細は不明です。
同じドメイン名で http/https の2つの設定をするみたいですね。


■【4】SQLite Managerからインポート
ブラックリストcsvをインポート
メニュー「データベース」→「取り込み」で、
「Import Wizard」タブが開きます。

ブラックリストcsvファイルを選択し、
・データが取り込まれるテーブルの名前は「moz_perms」
・区切り文字は「コンマ」
・クオートなどは「None」
を指定して、「OK」ボタンを押します。

"main"."moz_perms"にインポートしてよいかと聞かれるのでOKします。
追加した設定行数が表示されるのでOKします。



■【5】できあがり:確認
cookieフィルタに設定された状態
firefox を再起動すれば設定が反映されています。
設定からcookieフィルタを見ると、ちゃんと入っています。


[PR]
Commented by himajin100000 at 2017-02-14 22:02 x
>以前のfirefoxは、そのつどプロンプトが出てきて、
取得するcookieと保存期間を指定できたのですが、
そのプロンプトを出す設定がなくなりました
(firefox ver.44くらいから?)。network.cookie.lifetimePolicy=1 に設定すると出るらしいのですが、設定してもプロンプトが出ません。

https://bugzilla.mozilla.org/show_bug.cgi?id=606655#c19
絡みかな?

#話がUIにとどまってそうなタイトルだが、/extensions/cookie/nsCookiePermission.cppあたりで
nsCookiePermission::CanSetCookieを弄ってる。バグレポ読むの面倒だからこの辺で止めているが、コードレビューで方針の変更は一応されてこのコード方針自体は使われていないと思うけど)
Commented by xiaoxia at 2017-02-16 18:54
■himajin100000さま
ご紹介のページは確かに関連しそうですね。
英語なんで全然分からない上に、
こういうページも見慣れておらず読み方も分からないのですが、
fxを自分でビルドする気はなく、
配布されたものをそのまま使うだけですので、
効率的にブラックリストに追加したいなら、
エントリに書いたような方法を取らざるを得ないのではと思いました
by xiaoxia | 2017-02-01 18:09 | ソフトウェア | Comments(2)

ダメ女プログラマ&主婦&腐女子&バイオリン弾き


by 小霞