我确信还有很多网站,出于某种莫名其妙的原因,使用Javascript来操作cookie,但根据可能发生的所有XSS,确实没有充分理由允许这样做。为什么浏览器仍允许这样做?为什么不简单地阻止JS看到cookie?
答案 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发送到服务器,即使它只在客户端使用