我的应用程序中有授权通过POST请求发送到服务器。作为回应,我收到了json文件和cookie。
我希望每次都阻止用户输入凭据。所以问题是如何在应用程序启动之间存储cookie(仅会话cookie)。我关注这3个案例:
似乎我可以使用这样的东西:
NSHTTPCookieStorage.sharedHTTPCookieStorage().cookiesForURL(NSURL(string: "url")!)
但它是否安全,是否会在案例2和案例3中持续存在?
答案 0 :(得分:1)
过去几周我一直在处理类似的iOS问题。
根据凭据的安全性,我建议使用浏览器的localStorage功能解决此问题,而不是使用Cookie。
localStorage和sessionStorage比cookie更容易操作,跨域保护有助于避免用户操纵和第三方尝试。
如果一个人正在处理几乎任何其他浏览器,通常会使用sessionStorage,因为每个会话日志都会保留这些值。但是,移动设备上的iOS会过于频繁地清除会话存储,使其无用。
使用localStorage的危险在于浏览器会话之间的值仍然存在。如果一个合法的用户从第三方设备登录,那么这将成为一个问题,除非用户有办法清除它们(使用javascript很容易实现),否则凭据将保留在该设备上。
使用sessionStorage和localStorage的优点是:
1.与饼干相比易于操作
2.无需继续向服务器发回cookie值
3.减少服务器开销
请注意,特别是在iOS上,如果启用了“私密浏览”,则会禁用会话和本地存储。