在控制台中读取PHP会话ID

时间:2013-12-26 14:12:30

标签: javascript session-cookies php

我试图通过代码

读取所有cookie值
cookie = document.cookie

当我做警报(cookie)或console.log(cookie)时,我得到以下数据

phpcsls=4; __utma=229677836.804108415.1388064796.1388064796.1388064796.1; __utmb=229677836.5.10.1388064796; __utmc=229677836; __utmz=229677836.1388064796.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)

但是,如果我打开开发者控制台并检查cookies文件夹,这就是我所拥有的 enter image description here

我有兴趣从cookie中读取PHPSESSID。我该怎么做?

2 个答案:

答案 0 :(得分:2)

通过查看您的开发者控制台,您可以看到您的会话Cookie设置为HTTP

这意味着会话cookie是 HttpOnly 。看看setcookie() documentation,你会看到:

  

当为TRUE时,cookie只能通过HTTP协议访问。这意味着脚本语言(例如JavaScript)无法访问cookie。有人建议这种设置可以通过XSS攻击有效地帮助减少身份盗用(尽管并非所有浏览器都支持),但这种说法经常受到质疑。在PHP 5.2.0中添加。 TRUE或FALSE

由于会话cookie是HttpOnly,因此无法从Javascript中读取它。所以简短的回答是:这是不可能的。

答案 1 :(得分:1)

如果您检查http collumn,则会看到一个复选标记。这意味着cookie为httpOnly,无法在javascript中读取。

这是一项安全措施,可防止敏感Cookie通过javascript漏洞被盗。