7

我自己对此进行了一些测试(确切地说是在 DWR 框架 Ajax 请求处理程序的服务器端处理期间),看来您可以成功操作 cookie,但这与我在 Ajax 最佳实践和浏览器如何解释来自 XmlHttpRequest 的响应。注意我已经测试过:

  • IE 6 和 7
  • 火狐 2 和 3
  • 苹果浏览器

并且在所有情况下,浏览器都正确解释了在 Ajax 请求处理期间对 HttpServletResponse 对象的标准 cookie 操作,但我想知道将 cookie 操作推送到客户端是否是最佳实践,或者这个(更清洁的)服务器侧面 cookie 处理是可以信任的。

我欢迎特定于 DWR 框架和一般 Ajax 的答案。

4

3 回答 3

9

XMLHttpRequest 始终使用 Web 浏览器的连接框架。这是 AJAX 程序正常工作的要求,因为如果 XHR 对象无法访问浏览器的 cookie 池,用户将被注销。

理论上,Web 浏览器可以在不使用浏览器连接框架的情况下简单地共享会话 cookie,但是(据我所知)这在实践中从未发生过。甚至 Flash 插件也使用 Web 浏览器的连接。

因此最终结果是通过 AJAX 操作 cookie 是安全的。请记住,AJAX 调用可能永远不会发生。它们不是保证事件,所以不要指望它们。

于 2008-09-18T03:00:35.750 回答
1

在 DWR 的上下文中,它可能不是“安全的”。

通过阅读DWR 网站,它说:

将 HTTP 请求和响应视为只读非常重要。虽然 HTTP 标头可以通过 OK,但某些浏览器很有可能会忽略它们。

我认为这意味着设置 cookie 或请求属性是禁止的。
话虽如此,我有设置请求属性的代码(我在阅读该页面之前编写的代码)并且它似乎工作正常(除了删除我在上面的评论中提到的 cookie)。

于 2009-05-28T08:08:58.803 回答
-1

在客户端操作 cookie 与“最佳实践”相反。而且它也不应该是必要的。HttpOnly cookie 并不是无缘无故引入的。

于 2008-09-18T02:56:56.693 回答