アカウントごとに、ひとつのブラウザアイデンティティ
毎回新しいマシンからログインするアカウントは目立ちますし、1 台のマシンを共有する 2 つのアカウントも目立ちます。Clearcote はアカウントごとに専用のシードを割り当てるので、各アカウントはセッションのたびに同じデバイスとして戻ってくる一方、次のアカウントは別のマシンに見えます。
シードによるアイデンティティはすべてのプランで使えます。複数を同時に動かすには、Pro またはオープンビルドが必要です。
アカウントごとにシードとプロファイルディレクトリを
import { launchPersistentContext } from "clearcote";
// one seed and one user-data directory per account
const ctx = await launchPersistentContext("./profiles/account-42", {
fingerprint: "account-42",
proxy: { server: "http://gateway:8080", username: "u", password: "p" },
geoip: true,
});主なポイント
同じシードなら同じデバイス
シードを再利用すれば、ペルソナはまったく同じ姿で戻ってきます。GPU、画面、ハードウェアのクラス、フォントがすべて同じです。保存しておくものは何もなく、シードがそのままアイデンティティです。
新しいシードなら別のマシン
canvas と WebGL の読み出し結果はシードごと・サイトごとに異なるため、2 つのアカウントがレンダリングのフィンガープリントを共有することはありません。
持続する状態
永続コンテキストは、実際のブラウザプロファイルと同じように、Cookie、localStorage、IndexedDB、キャッシュを実行をまたいで保持します。
アイデンティティごとのプロキシ
各アイデンティティに専用の出口と geoip を組み合わせれば、タイムゾーンと言語が毎回その IP に合わせられます。
コードから使える保存済みプロファイル
Profile はシード、プロキシ、起動オプションを JSON として ~/.clearcote/profiles 以下に保存するので、スクリプトからアカウントを名前で起動できます。
手作業向けのデスクトップアプリ
Profile Manager は、プロファイルを作成してタグを付け、それぞれ専用のプロキシとストレージを持つ通常のブラウザウィンドウとして起動します。
アイデンティティを構成するもの
アイデンティティは 2 つの要素で成り立ちます。ブラウザが報告する内容と、ブラウザが記憶している内容です。前者はシードが決定論的にカバーします。後者、つまり Cookie、サイトのストレージなど、再訪ユーザーが持ち歩くあらゆるものは、ユーザーデータディレクトリかホスト型プロファイルがカバーします。
何がアイデンティティを分け、何が分けないのかを把握しておきましょう。canvas と WebGL はアカウントを分けます。レンダリングされたオーディオと client rects は分けません。これらは下で動くマシンに由来し、そのマシン上のすべてのアイデンティティで同じになるからです。まったく同じハードウェアを使う 2 人の場合とまさに同じです。サイトがこれらの値で相関を取っているなら、答えは別のスイッチではなく、別のマシンです。
インポートしたデバイスプロファイルが変えるのはページが読み取る値であり、ピクセルの描画方法ではありません。そのため、1 台のマシン上で 2 つのプロファイルを使う 2 つのアカウントは、同じ canvas を描画します。描画結果を分けたい場合は、プロファイルを使わずにアカウントごとのシードを使い、シードとプロファイルを組み合わせないでください。
アイデンティティの保存先
| ツール | 保存するもの | 向いている用途 |
|---|---|---|
| SDK の永続コンテキスト | アカウントごとのユーザーデータディレクトリ | 自分のマシンで動かすスクリプト |
SDK の Profile | シード、プロキシ、起動オプション(JSON) | コードからアカウントを名前で起動 |
| Profile Manager | プロファイルごとのデータディレクトリと、プロキシ、タグ、メモ | ウィンドウでアイデンティティを手動操作 |
| ホスト型プロファイル | Cookie、localStorage、IndexedDB(暗号化済み) | ログイン済みの状態で始まるクラウドセッション |
主な用途
代理店
クライアントごとのログインをそれぞれ専用のアイデンティティで管理し、あるクライアントのセッションが別のクライアントのものと混ざることがないようにします。
オンラインストアの運営
複数のストアや地域を、互いのセッションが混ざり合うことなく運営できます。
多数のテストユーザーを使う QA
ログイン済みのテストアカウントを数十個、それぞれ安定したデバイスで保持できます。
縦断的な調査
数週間にわたって同じデバイスとして同じページを再訪し、何が変わるかを計測します。
Clearcote は、プライバシー保護、テスト、研究、合法的な自動化のために作られています。どう使うか、そしてアクセスするサイトの規約を守ることは、利用者ご自身の責任です。
対象プラン
シードによるアイデンティティと永続コンテキストは、すべてのプランで使えます。「GitHub で無料」では同時に 1 ブラウザしか動かせないため、最新ビルドで複数のアイデンティティを同時に動かすには Pro が必要です。
プランを比較よくある質問
アカウント同士が紐づけられないようにするには?
アカウントごとに、専用のシード、専用の永続プロファイルディレクトリ、geoip を有効にした専用のプロキシを割り当ててください。アカウント間で Cookie やストレージを共有せず、アカウントのシードをローテーションしないでください。
セッションごとにフィンガープリントを変えるべきですか?
いいえ。ログイン済みのアカウントが訪問のたびに新しいデバイスで現れることは、ローテーションしようとしているどの値よりも目立つシグナルです。アカウントが存続する間は、1 つのシードを使い続けてください。
シードとデバイスプロファイルの違いは何ですか?
シードからは、合成されたペルソナ全体と、サイトごとの canvas・WebGL ノイズが導出されます。デバイスプロファイルは実際の Chrome が報告した値をそのまま使いますが、レンダリングは引き続きあなたのマシンで行われます。どちらか一方を使ってください。シードとプロファイルを併用するとノイズのレイヤーが有効になり、プロファイルの一部の項目が部分的にしか適用されなくなります。
コードを書かずにプロファイルを管理できますか?
はい。Profile Manager は、プロファイルの作成・整理・起動を行うデスクトップアプリです。各プロファイルは、それぞれ専用のプロキシと永続ストレージを持つ通常のブラウザウィンドウとして開きます。
複数のアカウントを運用することは許されていますか?
それはブラウザではなく、各サイトの利用規約とお住まいの地域の法律によって決まります。Clearcote はプライバシー保護、テスト、研究、そして合法的な自動化のために作られており、どう使うかの責任は利用者にあります。
ドキュメントで詳しく
関連する機能
canvas、WebGL、WebGPU、オーディオ、フォント、画面、ハードウェアを C++ のエンジン内で 1 つのシードから導出し、ロケールとタイムゾーンもそれに合わせます。すべての項目が互いに整合します。
geoip を有効にしてプロキシを設定すれば、タイムゾーン、言語、WebRTC が出口 IP に従います。ライセンスビルドなら、ユーザー名とパスワード付きの SOCKS5 もそのまま使えます。
API 呼び出し 1 回でクラウド上に Clearcote ブラウザを起動し、CDP 経由で Playwright や Puppeteer を接続できます。住宅用 IP 込みで、通信量 1 GB 単位の課金です。
オプション 1 つで、Playwright のクリック、タイピング、ドラッグ、スクロールに、曲線の軌跡と人間らしいタイミングを与えます。入力は trusted なネイティブ入力のままです。
関連記事
Clearcote を試す
Playwright & Puppeteer にそのまま組み込め、TLS ハンドシェイクまで整合性を保ちます。まずはオープンソースのビルドから始められます。
GitHub があればブラウザ 1 つまで無料。カード登録は不要です。