【发布时间】:2016-09-05 02:39:42
【问题描述】:
我是一名网络开发人员,我在大学学习如何使用 SESSION(更准确地说是 COOKIES)来管理用户会话。但是,当涉及到移动应用程序时,我对如何实现系统以确保系统安全,同时遵循应用程序的正常做法感到困惑。
我首先感到困惑的是我应该如何将会话存储在应用程序中。例如在 PhoneGap 中它没有 COOKIES,必须使用本地存储来模拟 COOKIES 行为。我问了一些在开发原生应用程序领域的朋友。他们还提到,在 Android 中,他们大部分时间都使用共享首选项和具有类似技术的 iOS 来存储用户数据。
- 这是否意味着在移动应用程序中我不应该使用 COOKIES 而应该将会话数据的管理转移到应用程序级别?我应该将会话存储在应用程序存储中吗?这是我想问的第一件事。
第二件事是关于会话更新。对于一个网站,一个常见的(和简化的)会话验证例程是这样的:每当用户请求一个新页面时,它将首先验证用户提供的会话。然后旧会话被更新,并存储在 COOKIES 中。下次用户将请求具有新会话的页面。如果会话过期,用户会被重定向到再次登录。
但是,这可能不是 100% 适合当今应用程序世界的样子。至少我很少(实际上从我的经验来看从来没有)完全从应用程序中退出(例如 Facebook、Dropbox、Instagram)。我不太确定他们的会话是如何工作的。但是通过观察这种行为,似乎暗示那里没有会话过期策略。这就是我感到困惑的地方,因为我在安全课程或 OWASP 中学到了这应该是一个安全威胁。
- 那么我想问的第二件事来了:在工业实践中,移动应用环境中的会话过期策略是如何设计的?会话是否会持续到用户下次再次打开应用程序?此外,作为开发人员,我应该如何设计会话以保证安全性,同时又不会创建糟糕的用户体验?例如,如果用户在几天不使用应用程序时必须重新登录,他/她肯定会不高兴。
当然,安全性是一个很大的话题,不可能在一个答案中提及所有细节,但总体情况以及我可以开始挖掘的一些材料可以解决我的问题。
谢谢。
【问题讨论】:
标签: android ios cordova session cookies