sttsのソースコードMemoブログ

色々やってみた結果のMemo

クッキーを操作するbookmarklet

今日は、クッキーを操作するbookmarkletです。Webアプリケーションのテストでクッキーの書き換えや、複数のブラウザ間でクッキーを手軽に移動させたいときに使うことが出来ます。
ニコニコ動画など、HTTPのセッション管理が厳しく、とあるブラウザでログイン中に別のブラウザでログインすると、元のブラウザではログアウトしてしまうサイトが有ります。このようなサイトでクッキーを無理やりブラウザ間で移して同じセッションでアクセスすると複数のブラウザでログインしたままの状態に出来ます。

現在開いているページのクッキーを表示するのは以下です。

javascript:(function(){prompt("現在のクッキー",document.cookie);})();

現在開いているページにクッキーを設定するのは以下です。

javascript:(function(){var c=prompt("クッキーの設定",document.cookie);var e=new Date();e.setTime(e.getTime()+(90*1000*60*60*24));var a=c.split(';');for(var i=0;i<a.length;i++){document.cookie=a[i]+"; expires="+e.toGMTString()+"; path=/";}})();

javascriptからクッキーを取得するときに有効期限とpathを取得する方法がわかりませんでした。この保存するbookmarkletでは、有効期限90日、pathが/固定になっています。つまり、元のクッキーの有効期限とPATHを初期化してしまいます。

自己責任で、セキュリティとか、わかっている人だけ使用してください。
ブラウザ間で、HTTPのセッションハイジャックをしているのと同じです。

Cookie削除bookmarklet - blob globの以下のブックマークレットも参考になります。

javascript:(function(){document.cookie='expires='+(new%20Date(2000,1,1));window.location.reload();})();