如何使用javascript获取浏览器存储的cookie

时间:2011-09-07 14:15:55

标签: php javascript cookies get

我有关于使用javascript访问所有浏览器cookie的问题,我能够在shell脚本中执行此操作,但我想访问存储在本地计算机中需要传递给服务器的cookie信息。

问候

5 个答案:

答案 0 :(得分:3)

您可以使用

访问它们
document.cookies

答案 1 :(得分:3)

想象一下这是可能的。您浏览到加载第三方广告的任意网站,流氓广告会读取您的所有浏览器Cookie,并且,有些人来自俄罗斯黑手党,其中包含所有网站的“记住我”Cookie和会话ID。他可以阅读您的电子邮件,在Facebook上查看您的照片并从您的PayPal帐户中取钱。

答案 2 :(得分:2)

您无法访问所有浏览器Cookie。仅为当前域设置的cookie并且未标记为“仅限http”(如果您位于非SSL页面上,则为“安全”)。

在javascript中使用document.cookies

<强>更新
浏览器具有内置功能,作为安全功能,可防止您阅读跨域Cookie。只要javascript在浏览器中运行,就没有方法可以访问这些cookie,更不用说执行shell命令了。 Google for:same origin policy

你基本上寻找的东西有很多安全/隐私影响,我甚至不知道从哪里开始解释危险。

答案 3 :(得分:2)

function getCookie(name) {
  // Split cookie string and get all individual name=value pairs in an array
  var cookieArr = document.cookie.split(";");
  // Loop through the array elements
  for (var i = 0; i < cookieArr.length; i++) {
    var cookiePair = cookieArr[i].split("=");
    /* Removing whitespace at the beginning of the cookie name
        and compare it with the given string */
    if (name == cookiePair[0].trim()) {
      // Decode the cookie value and return
      return decodeURIComponent(cookiePair[1]);
    }
  }
  // Return null if not found
  return null;
}

答案 4 :(得分:0)

function listCookies() {
var theCookies = document.cookie.split(';');
var aString = '';
for (var i = 1 ; i <= theCookies.length; i++) {
    aString += i + ' ' + theCookies[i-1] + "\n";
}
return aString;
}