在 appengine 上处理禁用 cookie 的简单方法是啥?

Posted

技术标签:

【中文标题】在 appengine 上处理禁用 cookie 的简单方法是啥?【英文标题】:What's an easy way to deal with disabled cookies on appengine?在 appengine 上处理禁用 cookie 的简单方法是什么? 【发布时间】:2012-01-06 03:30:10 【问题描述】:

我遇到了几个禁用 cookie 的用户,因此该网站无法正常运行。我在 appengine 上使用带有 % url % 模板标签的 webapp2 和 django 1.2 模板。

我想找到一种简单的方法来解决这个问题,这不会让我最终进行大量的代码更改。访问我所有的 url 并有条件地将 ?cookie= 添加到所有这些将是一个真正的痛苦,所以我希望有一个简单的解决方案来解决这个问题。

表单上的CSRF代码也会出现问题,那你怎么办,放弃CSRF?

我可以在 urlNode 代码中做一些事情,因为我应该能够从上下文中解析 logged_in_user 对象,所以这可能会解决很多问题,除了在 ? 之后添加参数的任何地方。现在必须使用 &。总而言之,这不是一个很好的解决方案。

有谁知道更简单的方法来处理这个问题?

【问题讨论】:

你还没有解释你需要 cookie 做什么。它只是用于会话管理吗?还有什么? 是的,cookie 是用于会话管理的,它是一个 FB 应用程序,所以我不一定有用户的 Google 帐户。我在 cookie 中存储的唯一内容是 CSRF 内容和用户会话密钥。我还能用 cookie 做什么? 如果您的用户禁用了 cookie,那么很大一部分网络将被他们破坏,包括大多数其他需要身份验证的网站。告诉他们抓住并重新启用 cookie,或者停止担心它们——他们是极少数偏执的少数人。 【参考方案1】:

我不建议使用 cookie 作为可选要求来构建站点,站点设计很快就会变得极其复杂,并且您可能会打开更多可以想象的安全漏洞。如果您必须支持没有 cookie 的用户,请使用 HTTP 基本身份验证来验证和识别用户。

【讨论】:

我也不是这个想法的忠实粉丝。

以上是关于在 appengine 上处理禁用 cookie 的简单方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

如何检测服务器端cookie是不是被禁用

使用 Google Appengine 设置“过期”cookie

在 AppEngine 的根路径上处理 _escaped_fragment_

servlet 如何知道浏览器禁用了 cookie?

IE浏览器的Cookies被禁用,如何设置允许使用

禁用 3rd 方 cookie 时,Google 登录不会执行任何操作