14

http://www.example.comにいて、ドメインが.example.comの Cookieと別のドメインがwww.example.comの Cookie を削除したいとします。

私は現在、この汎用関数を使用しています:

var deleteCookie = function (name)
{
  document.cookie = name + '=; path=/; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
};

ドメインがwww.example.comのCookieのみを削除しているようです。

しかし、ドメインが.example.comである Cookie も削除するように指定するにはどうすればよいでしょうか?

編集:基本的に、httponly フラグがない限り、http://www.example.comに関連するすべての Cookie を削除できる機能を探しています。そのような機能はありますか?

4

4 に答える 4

14

これは、 http: //example.com にいて、 http://blah.example.com Cookieを削除したい場合にのみ実行できます。www.example.com からも機能しません。「ベース」ドメインのみがサブドメイン Cookie を削除できます。

. で始まる「すべてのサブドメイン」Cookie もあり、ベース ドメインによってのみ削除できます。

ベースドメインから、これはそれを削除するために機能するはずです:

document.cookie = 'my_cookie=; path=/; domain=.example.com; expires=' + new Date(0).toUTCString();

または、優れた jquery.cookie プラグインを使用します。

$.cookie('my_cookie',null, {domain:'.example.com'})
于 2013-08-21T21:16:16.233 に答える
10

セキュリティのため、別のサイトの Cookie を編集 (または削除) することはできません。foo.domain.comと の両方を所有しているという保証はないため、 fromの Cookie を編集したり、その逆を行ったりbar.domain.comすることはできません。foo.domain.combar.domain.com

それが許可されていて、悪意のあるサイトにアクセスした場合を考えてみてください。次に、銀行口座に小切手を入金しようとしていた銀行に戻ります。しかし、悪意のあるサイトにアクセスしている間に、銀行の Cookie を独自の銀行情報で更新しました。ここで突然、小切手が悪意のあるサイトの所有者の銀行口座に振り込まれます。

于 2013-07-21T21:15:31.493 に答える