繁体   English   中英

如何管理Cookie-使用JavaScript或HTTP Set-Cookie?

[英]How to manage cookies - with JavaScript or with HTTP Set-Cookie?

我正在GAE环境中创建一个Web应用程序。 它大量使用AJAX / JSON来发送/接收数据以及所有相关信息。 我不太担心禁用JS的浏览器和过时的浏览器,因为这是我的个人项目,并且我正在尝试使其变得简单而不会使代码code肿。 因此,我在项目中大量使用了JavaScript。 在这种情况下,请告诉我如何更好地管理cookie和会话。 我有两种变体-尽可能使用HTTP Set-Cookie,而不能使用JavaScript。 第二种是相反的-尽可能使用JavaScript。 两种变体现在都可以正常工作,但我想使其正确。 在需要设置cookie的JavaScript场景中,我使用一些键通过AJAX获取了一些数据,然后使用jQuery插件将这些键设置为cookie,反之亦然,使用JS读取cookie并通过AJAX发送它们。 两种方法的利弊是什么? 谢谢!

您应该在最方便的地方设置cookie。
这可能意味着一些cookie来自服务器,而一些来自客户端。

但是请注意,出于安全原因,高风险cookie(例如登录令牌)应仅使用HTTP,以便无法从Javascript访问它们。

(不用说,它们应该仅是SSL)

Cookies始终与HTTP标头捆绑在一起,因此通过JavaScript读取并通过AJAX将其发送到服务器没有任何“改进”。

例如,诸如字体大小或网站语言之类的与显示相关的设置通常仅与客户端有关,因此我只使用JavaScript来设置和检索此类cookie。

像会话ID这样的东西无论如何都需要服务器端的工作,因此通过HTTP Set-Cookie维护cookie似乎是最简单的方法。

当您使用标头设置cookie时,可以选择仅设置HTTP(即无JavaScript访问)和仅设置SSL。

启用这些选项可以避免应用程序中的许多安全漏洞(请注意,设置http only标志只会阻止javascript读取cookie-它仍将在Ajax请求中显示)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM