【问题标题】:Accessing a cookie's value through the Address Bar通过地址栏访问 cookie 的值
【发布时间】:2013-04-22 06:46:46
【问题描述】:

假设我网站上的用户拥有来自另一个网站的 cookie,并且我知道 cookie 的名称。基本上我想要做的是给用户一个指向地址栏的链接,以及一个 Javascript 代码,它将激活该 cookie 的值(让我们称该 cookie 为“Joe”)。例如:

我的网站会给用户这个链接:Examplesite.com/page=(这里是用javascript或其他东西激活特定cookie值的代码)

读取值后输出必须是这样的:Examplesite.com/page=54(假设 cookie 的值为 54)。

我无法使用普通脚本来执行此操作,因为我无法控制 Examplesite.com cookie(我不拥有该网站)。所以我想,为什么不给用户一个链接,浏览器会认为用户请求访问这些 cookie(这实际上是真的,因为他正在粘贴它),而不是一些随机的网站。然后用户所要做的就是将它粘贴到地址栏中,地址栏将激活它......我不确定这是否可能。任何答案将不胜感激。

【问题讨论】:

  • 不会发生。您将需要一个服务器代理,例如 curl 到站点并显示在您欺骗用户浏览器时返回的 cookie
  • 您无法从您网站的上下文中访问其他网站的 cookie。这将违反same origin policy
  • “违反同源策略” - 你是说如果我现在想使用 javascript 使用地址栏从 StackOverflow 激活 cookie,我不能这样做吗?尽管如此,我可以看到它的 cookie 和价值......
  • 激活是什么意思?您只能访问同源的 cookie。所以只有在 SO 上你才能访问 SO 的 cookie。

标签: javascript cookies address-bar


【解决方案1】:

在 Firebug 和其他浏览器开发工具出现之前,我曾经在 URL 栏中输入以下内容来查看网站 cookie:

javascript:alert(document.cookie)

所以,我刚刚访问了 google.com,然后在我的 Mac (OS X 10.8) 上使用 Firefox 19、Chrome 26 和 Safari 6 进行了尝试。

Chrome 让我输入 javascript:alert(document.cookie),但是当我将其粘贴到 URL 栏中时,它会删除 javascript: 并仅粘贴 alert(document.cookie),这会运行 google 搜索。

Safari 会在粘贴时提醒 cookie,但 Firefox 不允许粘贴,也不允许输入。

这些结果是用户直接输入的,结果好坏参半。使用来自另一个站点的链接,以及所有“跨域”安全问题,这是行不通的。仔细想想,这确实是Cross-site scripting (XSS) 攻击的另一种形式。

【讨论】:

  • 这个 XSS 怎么样?我正在尝试访问存储在浏览器中的我自己的 cookie。我唯一想做的就是让特定 cookie 的值显示在浏览器中......
  • 您喜欢从一个站点,进入另一个站点(跨站点),试图获取该站点设置的信息
  • 不,现在我只想知道如何通过在地址栏上使用 javascript 来查找特定 cookie 的值...这意味着 - 我在浏览器中输入 Javascript 代码,结果是cookie 的具体值。
猜你喜欢
  • 1970-01-01
  • 2017-08-17
  • 2018-02-05
  • 2014-12-16
  • 2016-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多