重新加载之间的 Cookie
Cookie between reloads
我的应用程序通过 POST-请求服务器获得授权。作为回应,我收到 json 文件和 cookie。
我想阻止用户每次都输入凭据。所以问题是如何在应用程序启动之间存储 cookie(仅会话 cookie)。我在这里关注 3 个案例:
- 用户按下 "Home" 并在应用程序被 iOS
终止之前返回到应用程序
- 用户按下 "Home" 并在应用程序被 iOS
终止后返回到应用程序
- 用户通过从多任务处理中滑出应用程序强制退出应用程序
看来我可以使用这样的东西:
NSHTTPCookieStorage.sharedHTTPCookieStorage().cookiesForURL(NSURL(string: "url")!)
但是它安全吗?它会在案例 2 和案例 3 中持续存在吗?
过去几周我一直在处理类似的 iOS 问题。
根据凭据需要的安全程度,我建议考虑使用浏览器的 localStorage 功能来解决此问题,而不是使用 cookie。
localStorage 和 sessionStorage 比 cookie 更容易操纵,跨域保护有助于避免用户操纵和第 3 方尝试。
如果要处理几乎所有其他浏览器,通常会使用 sessionStorage,因为每次登录会话都会保留这些值。但是,iOS 在移动设备上会过于频繁地清除会话存储,使其变得无用。
使用 localStorage 的危险在于值在浏览器会话之间持续存在。这成为一个问题的地方是,如果合法用户从第 3 方设备登录,凭据将保留在该设备上,除非用户有办法清除它们(使用 javascript 很容易实现)。
使用sessionStorage和localStorage的优点是:
1. 与 cookie 相比易于操作
2. 无需继续向服务器回发 cookies 值
3. 减少服务器开销
请注意,特别是在 iOS 上,如果启用了隐私浏览,会话和本地存储都会被禁用。
我的应用程序通过 POST-请求服务器获得授权。作为回应,我收到 json 文件和 cookie。
我想阻止用户每次都输入凭据。所以问题是如何在应用程序启动之间存储 cookie(仅会话 cookie)。我在这里关注 3 个案例:
- 用户按下 "Home" 并在应用程序被 iOS 终止之前返回到应用程序
- 用户按下 "Home" 并在应用程序被 iOS 终止后返回到应用程序
- 用户通过从多任务处理中滑出应用程序强制退出应用程序
看来我可以使用这样的东西:
NSHTTPCookieStorage.sharedHTTPCookieStorage().cookiesForURL(NSURL(string: "url")!)
但是它安全吗?它会在案例 2 和案例 3 中持续存在吗?
过去几周我一直在处理类似的 iOS 问题。
根据凭据需要的安全程度,我建议考虑使用浏览器的 localStorage 功能来解决此问题,而不是使用 cookie。
localStorage 和 sessionStorage 比 cookie 更容易操纵,跨域保护有助于避免用户操纵和第 3 方尝试。
如果要处理几乎所有其他浏览器,通常会使用 sessionStorage,因为每次登录会话都会保留这些值。但是,iOS 在移动设备上会过于频繁地清除会话存储,使其变得无用。
使用 localStorage 的危险在于值在浏览器会话之间持续存在。这成为一个问题的地方是,如果合法用户从第 3 方设备登录,凭据将保留在该设备上,除非用户有办法清除它们(使用 javascript 很容易实现)。
使用sessionStorage和localStorage的优点是:
1. 与 cookie 相比易于操作
2. 无需继续向服务器回发 cookies 值
3. 减少服务器开销
请注意,特别是在 iOS 上,如果启用了隐私浏览,会话和本地存储都会被禁用。