piapia123
ja

Cookie 文字列を JavaScript に変換

Web

処理はすべてブラウザ内で完結します。データは送信されません

入力
ファイルをここにドロップすると読み込めます
出力

Cookie 文字列を JavaScript に変換します。既定では `document.cookie = …` 文を出力し、ブラウザのコンソールに貼ればセッションを復元できます(別アカウントとして API を叩くときの定番の手法です)。オブジェクトリテラルを出力してコード内で値を読むこともできます。3 点は明確にしておきます:`HttpOnly` は設定できません —— この属性の存在意義が JavaScript を締め出すことで、ブラウザはその代入を無視します。そのため理由をコメントに書いて省略します。`Domain` も同様で、`document.cookie` は現在のオリジンにしか効きません。値にセミコロン・カンマ・空白が含まれると、ブラウザは何も表示せずに代入を無視します。それも検出してコメントで名指しします。解析はサイト内の Cookie 整形ツールと同じ実装で、リクエストヘッダーと Set-Cookie のどちらも扱えます。

機能

  • 2 つの出力:document.cookie の代入文、またはオブジェクトリテラル
  • リクエストヘッダーの Cookie とレスポンスの Set-Cookie を自動判別して処理
  • Path / Expires / Secure / SameSite をそのまま出力に含めることも、全部外すことも可能
  • HttpOnly は理由付きで省略 —— JavaScript を締め出すための属性です
  • Domain も理由付きで省略 —— document.cookie は現在のオリジンにのみ有効です
  • 値にセミコロン・カンマ・空白がある場合は、どの cookie かを名指しで警告
  • 値の引用符とバックスラッシュをエスケープし、常に正しい JavaScript を出力
  • コメントは英語 —— .js ファイルに貼るため
  • 処理はすべてブラウザ内で完結し、Cookie は送信されません

使い方

  1. Cookie 文字列を貼り付ける(Cookie: / Set-Cookie: の接頭辞は有無どちらでも可)
  2. 出力形式を選ぶ(代入文 / オブジェクトリテラル)
  3. コードをコピーしてコンソールやスクリプトに貼る

よくある質問

HttpOnly の cookie が生成されないのはなぜですか?
設定できないからです。`HttpOnly` の存在意義は「この cookie を JavaScript から読み書きさせない」ことで、ブラウザはそれを含む `document.cookie` の代入を、エラーも通知もなく無視します。そのため理由をコメントに書いて省略しています —— 絶対に効かない文を出して「設定できた」と誤解させるより良いからです。HttpOnly を設定するにはサーバー側の `Set-Cookie` レスポンスヘッダーが必要です。
Domain も省略されるのはなぜですか?
`document.cookie` は同一生成元ポリシーに従い、実行されているページのオリジン(とそのサブドメイン)の cookie しか書けないからです。他所からコピーした `Domain=other.example` はあなたのページでは効かず、残しておくと効いたと誤解させるだけです。ルールは「Domain を効かせたいなら、そのドメイン配下のページで実行する」です。
コンソールで実行したのに cookie が設定されません。
最も多い原因は値に不正な文字があることです:cookie の値に使えるのは特定の ASCII 文字集合だけで、セミコロン・カンマ・空白・引用符があるとブラウザは何も表示せずに代入を無視します(コンソールに何も出ません)。出力の冒頭でそのケースを警告しており、対処は値を URL エンコード(`encodeURIComponent`)してから設定することです。他には、ページが iframe 内にある、サードパーティ cookie の制限を受けている、といった原因があります。
別のドメインの cookie を設定できますか?
できません。`document.cookie` が書くのは現在のページの cookie で、クロスオリジンの書き込みは不可能です —— これは同一生成元ポリシーであり、ツールの制限ではありません。cookie を検証するには、そのサイトのページでコンソールを開いてください。また `Secure` は https ページを要求し、http ページでは `Secure` 付きの代入も同様に無視されます。
Cookie は送信されますか?
いいえ。解析と生成はすべてブラウザのメモリ上で行われ、ページは一切リクエストを送りません。オフラインでも動作します。⚠️ ただし 1 点注意:Cookie は多くの場合セッション資格情報です。どのオンラインツールでも、貼り付けた時点でそれを渡したことになります —— このツールは送信しませんが、コピーしたコードにはそれが含まれるので、公開の場に貼らないよう注意してください。

関連ツール