gpt4 book ai didi

android - 在现代移动应用程序中管理 session 的实践

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:33:22 25 4
gpt4 key购买 nike

我是一名 Web 开发人员,我从大学学习了如何使用 SESSION(更准确地说是 COOKIES)来管理用户 session 。但是,当涉及到移动应用程序时,我很困惑如何在遵循应用程序的正常实践的同时实现系统以确保系统安全。

我感到困惑的第一件事是我应该如何在应用程序中存储 session 。例如在 PhoneGap 中它没有 COOKIES 并且必须使用本地存储来模拟 COOKIES 行为。我问过一些在开发本地应用程序领域的 friend 。他们还提到在 Android 中他们大部分时间使用 sharedpreferences 和具有类似技术的 iOS 来存储用户数据。

  1. 这是否意味着在移动应用程序中我不应该使用 COOKIES 而应该将 session 数据的管理转移到应用程序级别?我应该将 session 存储在应用程序存储中吗?这是我想问的第一件事。

第二件事是关于 session 更新。对于一个网站,一个常见的(和简化的)session 验证例程是这样的:每当用户请求一个新页面时,它将首先验证用户提供的 session。然后旧 session 被更新,并存储在 COOKIES 中。下次用户将请求具有新 session 的页面。如果 session 过期,用户将被重定向到重新登录。

但是,这可能并不 100% 适合当今应用程序世界的样子。至少我很少(根据我的经验实际上从来没有)从应用程序中完全注销(例如 Facebook、Dropbox、Instagram)。我不太确定他们的 session 是如何进行的。但是通过观察这种行为,似乎暗示那里没有 session 过期策略。这是我感到困惑的地方,因为根据我在安全类(class)或 OWASP 中学到的,这应该是一个安全威胁。

  1. 那么我想问的第二个问题是:在工业实践中,移动应用环境下的session过期策略是如何设计的? session 是否持续到用户下次再次打开应用程序时?此外,作为开发人员,我应该如何设计 session 以保证安全性,同时我们不会创建糟糕的用户体验?例如,如果用户几天不使用该应用程序而每次都必须重新登录,他/她肯定会不高兴。

当然,安全是一个很大的话题,不可能在一个答案中提及所有细节,但总体情况和我可以开始挖掘的一些 Material 可能会解决我的问题。

谢谢。

最佳答案

我有银行应用程序的经验,我们在登录时(手动)存储一个 session key ,用于验证每个网络服务调用,服务器处理该 key 是否有效,如果无效,则返回一个注销响应,这将导致你从应用程序中被引导到登录屏幕(就像你提到的那样,标准的东西)。我们还有一个计时器,如果应用程序中没有 Activity (和服务器端,使 session 无效),它将自动注销。因此,对于安全性更高的应用程序,用户注销的频率要比 Facebook 高得多,如果您的 Facebook 帐户遭到入侵,您不会(很可能)失去生计。

所以这真的取决于你需要什么。 Facebook 依靠广告获取收入,因此希望其用户能够轻松进入他们的应用程序以获得最多的浏览量(牺牲安全性,但我想在手机上,你至少在指纹或密码后面某种形式的身份验证,即使它不是 facebook 自己做的)。而银行应用程序的首要任务是安全性,因此强制用户每次都登录等(最重要的是 2fa)。

关于android - 在现代移动应用程序中管理 session 的实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37133093/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com