_abck クッキーとは

最終確認 2026年11月10日 · 約7分

結論から: _abck は Akamai Bot Manager の主要クッキーです。一度取れば済む札ではなく、エッジが書き換え続ける台帳です。応答のたびに新しい値が返ることがあり、その値はブラウザが送ったセンサーデータに対する判定を符号化しています。_abck を捕まえて動かさずに持っていると、その瞬間から劣化が始まります。

3 つの区切り

典型的な値は F1A2B3...~-1~YAAQ... のように、チルダで区切られた 3 部分です。

位置何が入るか実務での意味
1 番目bmak / センサースクリプトが集めたデータの長いハッシュスクリプトが走ったこと、そして何を報告したかの証明。書き換えるとクッキー全体が無効になります。
2 番目判定フラグ0 はまだ不明、1 はボットと見なされた、~0 や -1 は受理。ヘッダをどれだけ整えても、1 は通してくれません。
3 番目発行記録(符号化されたタイムスタンプと参照データ)エッジが判定の古さを測るための材料。古い値は再評価されます。

なぜ毎応答で変わるのか

Akamai は関門で一度だけ判定するのではなく、セッションを継続的に評価します。応答ごとに判定が更新されうるので、5 分前に書き出したクッキーは、すでにエッジが怪しいと見なしているセッションを記述しているかもしれません。たとえば要求の頻度が跳ねた、IP が変わった、主張している User-Agent と TLS フィンガープリントが食い違う、といった理由です。

これは Akamai のスクレイピングで最も多い失敗そのものです。開発者は _abck をログイントークンのように扱い、キャッシュし、ワーカーや IP をまたいで使い回します。実際には、ブラウザセッションの心拍に近いものです。

Akamai 配下かどうかの見分け方

対処の前にベンダーを確定してください。Akamai の直し方は Imperva や Cloudflare の直し方ではありません。

その参照番号は Akamai 側の問い合わせ用ハンドルで、こちらから引けるコードではありません。分かるのは、エッジのどの判定で落ちたか、という層の違いだけです。

その他の Akamai クッキー

_abck だけを移して bm_sz を置いていく、あるいはその逆は、リプレイ攻撃に見える確実な作り方です。

コードでの形

実ブラウザでセンサーを走らせ、ジャーごと保持する最小形です。クッキーを 1 個抜き出して持ち回さないことが要点です。

ctx = browser.new_context(proxy=PROXY)      # 出口と指紋を固定
page = ctx.new_page()
page.goto(url)                               # ここでセンサーが走る
# _abck と bm_sz が揃う。以降の HTTP 呼び出しも同じ出口から。
jar = await ctx.cookies()
# 403 が出たら、ジャーを捨てて同じコンテキストでナビゲートし直す。
# 古い _abck を貼り直すのは、たいてい逆効果になる。

突破の選択肢

現実的な選択肢は 2 つ、そして存在しないものが 1 つです。

  1. センサーを動かす。 保護されたページを実ブラウザで開き、スクリプトを実行させ、以降のリクエストでもジャー全体と同じ IP、User-Agent、TLS スタックを保ちます。動きますが、セッションごとにブラウザ 1 つ分のコストがかかります。
  2. センサーデータを意図的に生成する。 生成スクリプトは難読化され、しかも変わります。自前の生成器を維持するのは treadmill です。対象 URL 用の有効な _abck を返す解決 API が通常の代替で、SolveHub は Akamai のタスクをこの方式で処理し、完了タスク単位で課金します。
  3. クリアしなくてよい経路を探す。 Akamai 保護のサイトでも、欲しい JSON エンドポイント、サイトマップ、モバイル API は無保護のことが多く、そちらのほうがはるかに安く読めます。

よくある質問

_abck は復号できますか。 3 番目の区切りのタイムスタンプは読めますが、1 番目はセンサー入力のハッシュです。復号しても有効な値を偽造できるわけではありません。

新しい _abck なのに 403 が返るのはなぜですか。 2 番目のフラグが 1 になっていることがよくあります。エッジはすでにそのセッションをボットと判定していて、クッキーはアクセスを与えるのではなく、その判定を報告しているだけです。

リクエストごとに新しい値が必要ですか。 いいえ。セッションごとに 1 つで、サイトが適用するスケジュールで更新します。リクエストごとに回すこと自体がシグナルになります。

_abck と bm_sz はどちらも必要ですか。 多くのサイトで両方です。bm_sz を欠いた _abck は、セッションの整合が取れていないように見えます。

値が ~-1~ のまま動きません。 センサーが完走していない可能性があります。スクリプトの読み込みが途中で切れていないか、実行を待たずにナビゲートしていないかを確認してください。