作为第三方阅读我自己的域名cookie

时间:2014-07-21 13:54:33

标签: javascript cookies compoundjs

此刻我正在疯狂,我已经花了一天时间做一些不应该采取任何措施的事情。

我在我的compoundjs网站(服务器上)上执行以下操作

   var cookie = req.cookies.my_user;
   if(!cookie){
       console.log("not user");
       res.cookie('my_user',  user._id, {maxAge: 900000, httpOnly: false });
   }

我正在以localhost:3000

运行该网站

当我从某个页面运行以下书签时,我无法控制

var link = document.createElement("link");
link.type = "text/css";
link.rel = "stylesheet";
link.href =  "//localhost:3000/bookmarklet/bookmarklet.css";
var head = document.getElementsByTagName("head"); 
head[0].appendChild(link);
var script = document.createElement('script');
script.src = "//localhost:3000/bookmarklet/bookmarklet.js";
head[0].appendChild(script);

和bookmarklet.js里面我做

console.log(document.cookie);

我没有设置的cookie。

显然我应该有访问权限,因为脚本是在设置我的cookie的同一域中提供的。

我去查看从该页面提供的实际html文档并打开控制台并执行console.log(document.cookie)我看到了我的cookie,但是如果我在写入文档的javascript内部执行则不行。

换句话说,它表现得好像是我设置的会话cookie,即使它不应该像我理解的那样。

2 个答案:

答案 0 :(得分:0)

我认为你设置cookie的方式一定是个问题...我建议你使用cookies libraries just like this one(如果你已经在使用jQuery),这样你就可以设置cookie了这个:

$.setCookie("key","value",7); // expires in one week
Cookie = $.getCookie("key"); // it gets you cookie
$.removeCookie("key"); // to remove your cookie

你还有许多其他选择可以使用cookies,例如获取所有cookie或清除所有cookie等等......

答案 1 :(得分:0)

  

显然我应该有访问权限,因为脚本是在设置我的cookie的同一域中提供的。

也许不那么明显。脚本使用加载它们的页面的权限运行,而不是从它们加载的位置。也就是说,提供脚本的域是无关紧要的 - 唯一重要的位置是浏览器位置栏中的位置(或者是名义位置栏,如果它是一个帧)。

相关问题