1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

document.cookieとは?

Last updated at Posted at 2024-11-08

この場所からアクセスできるすべてのクッキーを読む

allCookies = document.cookie;

上記のコードで allCookies は、セミコロンで区切られたクッキーのリストです (つまり key=value のペア)。 なお、それぞれのキーおよび値の周囲にはホワイトスペース(空白やタブ文字)をおくことができます。実際のところ、RFC 6265 ではそれぞれのセミコロンの後に空白 1 文字を入れることを必須としていますが、一部のユーザーエージェントはこれに従っていません。

セミコロンで区切られたクッキーのリストです (つまり key=value のペア)とは?

document.cookie

'_gid=************; _gat_gtag_UA_36116321_5=****; _ga_PWTK27XVWP=*******************; _ga=***********'
  • セミコロンで区切られている
  • 文字列で返される

新しいクッキーを書き込む

document.cookie = newCookie;

上記のコードで、 newCookie は key=value の形式の文字列であり、クッキーを設定したり更新したりします。なお、この方法を使用して一度に設定・更新できるクッキーは、一つだけです。次のことも考慮してください。

  • オプションとして次に挙げる値を設定することができます。 key と value のペアの後にセミコロンで区切って設定することで、クッキーを設定・更新することができます。

    • ;domain=ドメイン (例えば、 example.com または subdomain.example.com): クッキーが送信されるホストです。 指定されなければ、これは現在の文書の場所のホスト部分を既定とし、クッキーはサブドメインでは利用できません。 ドメインが指定されれば、サブドメインも常に含まれます。 初期の仕様とは対照的に、ドメイン名の前のドットは無視されますが、ブラウザーはその様なドットを含むクッキーの設定を辞退することができます。

サブドメインとは?

  • ドメインが指定されれば、サブドメインも常に含まれますとは?
  • クッキーはサブドメインでは利用できませんとはどうしてだろうか?
// この例では `SameSite=None;` を設定しますが、これはこの例がオリジン間で
// 動作する必要があるからです。
// `SameSite` 属性は設定しない方が一般的です。この場合、既定値として
// `SameSite=Lax;` が設定されます。
document.cookie = "name=oeschger; SameSite=None; Secure";
document.cookie = "favorite_food=tripe; SameSite=None; Secure";

function showCookies() {
  const output = document.getElementById("cookies");
  output.textContent = `> ${document.cookie}`;
}

function clearOutputCookies() {
  const output = document.getElementById("cookies");
  output.textContent = "";
}

セッションハイジャックにも使われる

Example 2
Cross-site script attack
The attacker can compromise the session token by using malicious code or programs running at the client-side. The example shows how the attacker could use an XSS attack to steal the session token. If an attacker sends a crafted link to the victim with the malicious JavaScript, when the victim clicks on the link, the JavaScript will run and complete the instructions made by the attacker. The example in figure 3 uses an XSS attack to show the cookie value of the current session; using the same technique it’s possible to create a specific JavaScript code that will send the cookie to the attacker.

<SCRIPT>

alert(document.cookie);

</SCRIPT>

1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?