为什么浏览器仍然允许Javascript看到cookie?

时间:2009-08-18 23:00:11

标签: javascript cookies

我确信还有很多网站,出于某种莫名其妙的原因,使用Javascript来操作cookie,但根据可能发生的所有XSS,确实没有充分理由允许这样做。为什么浏览器仍允许这样做?为什么不简单地阻止JS看到cookie?

4 个答案:

答案 0 :(得分:6)

让我们清楚; JavaScript操作cookie是完全合理和可接受的。它本身并不会产生XSS问题。一个写得不好的网站。

答案 1 :(得分:4)

我必须承认,这个问题类似于“为什么浏览器仍然支持HTML,旧的”。向后兼容性是一个巨大的问题,切断所有现有的操作cookie的javascript代码将是灾难性的。

话虽如此,也有一些情况下,javascript操作cookie对于跨站点通信等等是有用的。

答案 2 :(得分:4)

这样,您可以直接在Cookie中设置首选项,而无需发出AJAX请求,并保存在服务器端的session / user_profile中。这对于您在重新访问网站时要保留的某些UI首选项非常有用,而在服务器端则更加容易,因为您不需要在会话过期时注册以查看首选项。

答案 3 :(得分:0)

您可以从服务器端设置httponly cookie,javascript无法看到。这会产生你想要的效果。

我有时依赖cookie来存储来自javascript的少量客户端数据,理解这是次优的,因为浏览器会在每次请求中将cookie发送到服务器,即使它只在客户端使用