问题标签 [nshttpcookiestorage]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
46 浏览

objective-c - 枚举时删除 Cookie:安全吗?

鉴于此代码:

这不会抛出异常,暗示枚举过程中cookie jar的突变是安全的。我想知道的是,为什么?这是否总是安全的,还是由于某些可能发生变化的实现细节而恰好是安全的?

0 投票
0 回答
262 浏览

ios7 - NSHTTPCookieStorage UTF-8 cookie 名称值被截断

在我NSHTTPCookieStorage用来将 cookie 存储在sharedHTTPCookieStorage.

我收到的其中一个 cookie 有一个名称值,其中包含非 ASCII 单词“Søren”。我可以看到在 HTTP 跟踪中设置了 cookie,但保存的 cookiesharedHTTPCookieStorage在“Søren”中的“S”之后被截断。在 HTTP 响应标头中设置的后续 cookie 都不会存储在sharedCookieStorage. 事实上,有问题的 cookie 以截断的形式存储了两次,几乎就像框架试图再次解析它然后放弃一样。

RFC2965 指出:

名称=必填值。状态信息(“cookie”)的名称为 NAME,其值为 VALUE。以 $ 开头的名称是保留的,应用程序不得使用。

我配置NSHTTPCookieStorage如下:

我认为这与 相关NSHTTPCookieStorage,而不是NSURLResponse. 我需要做任何额外的事情来处理 UTF-8 cookie 名称值吗?

0 投票
1 回答
1904 浏览

ios - NSHTTPCookieStorage 不会自动保存 cookie

我在Set-CookieNSURLResponse 的标头中接收 cookie,但[[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]返回空列表。NSHTTPCookie,我从回复中收到,是HTTPOnly安全的,没有expiresDate。这种行为的原因是NSHTTPCookieStorage什么?

更新:

在发送请求之前和收到响应之后,我已经检查了NSHTTPCookieStorage接受政策。但是NSHTTPCookieAcceptPolicyAlways,cookie 没有被存储。如果我发送另一个请求,返回另一个 cookie,存储会自动保存它。该cookie有过期日期HTTPOnly,所以,我认为,问题出在cookie的属性中,但我在文档中找不到任何确认

0 投票
1 回答
5409 浏览

ios - iOS:存储会话过期的cookie

我必须设置 NSHTTPCookie 使其到期设置为Session。我使用以下代码来设置该 cookie 的属性。

但是,上述两个属性都将到期时间设置为2001 年 1 月 1 日 02:00:00 GMT+2,而不是将到期时间设置为Session

0 投票
2 回答
3025 浏览

swift - Swift NSHTTPCookieStorage 计数:2

我怎样才能把它循环成一个cookie?

0 投票
2 回答
624 浏览

cocoa - 应该如何使用“removeCookiesSinceDate”?

NSHTTPCookieStorage从 MacOS 10.10 和 iOS 8.0 开始,就有了这种新的很棒的方法。从微不足道的谷歌点击量猜测,还没有人注意到它。这并不奇怪,因为它甚至还没有出现在 Apple 开发门户文档中,只是在标题中。但我仍然希望有人知道如何使用它,因为我不知道 :) 我试图用它来清除所有 cookie,而不是令人尴尬的 cookie jar 迭代。所以我称之为

和繁荣,EXC_BAD_ACCESSMemoryCookies::visitCookies。好吧,UN*X 时代可能太刻薄了。所以我尝试了

再次繁荣。所以我继续划分区间,发现它确实需要至少一个至少与date参数一样旧的 cookie。因此,无论如何您都必须迭代 cookie 以找到最旧的 cookie ,然后调用新的闪亮方法。这是非常荒谬的不切实际,我什至敢称它为错误。

想法?

0 投票
1 回答
641 浏览

ios - 围绕 iOS 共享 NSHTTPCookieStorage 的安全性

我正在努力寻找这方面的确切细节,所以我希望在这里得到一些帮助。我正在寻找有关iOS共享NSHTTPCookieStorage的底层存储机制的一些信息:

  • 当使用共享的 NSHTTPCookieStorage 存储 cookie 时,是否默认提供任何加密,例如使用 keychain 服务?或者 cookie 只是使用 NSUserDefaults 以明文形式存储?
  • 我了解 cookie 存储在应用程序的沙箱中,因此其他应用程序将无法访问,但我的理解是正确的,可以物理访问设备的人可以轻松访问应用程序的 cookie 及其值(特别是如果它们未加密存储)?

例如,如果必须处理 cookie 中的一些敏感数据,但又想利用 NSURLSession API 的默认 cookie 处理/存储(共享 NSHTTPCookieStorage),那么最好的选择是什么?

抱歉,我知道我已经问了 3 个单独的问题,但对此的任何帮助将不胜感激。

谢谢。

0 投票
0 回答
387 浏览

ios - 如何在 iOS 中维护 cookie?

我正在尝试使用UIWebView. 成功后,它将 cookie 存储在NSHTTPCookieStorage. 它对单个会话工作正常。

但是如果我强制关闭应用程序并返回应用程序,它会要求我登录。而它的 cookie 已经存储了。

我还提到了这个链接https://stackoverflow.com/a/8713316/2594560。但我的sessionOnly:FALSE和到期日期也已设置。

下面是代码:

如果用户没有登录,那么这将重定向到登录页面,但如果用户登录,那么它应该显示这个“show_all”页面。它适用于 cookie。但是如果我强制关闭应用程序并重新启动应用程序,那么它会重定向到登录。

请指导我如何实现这一目标。

0 投票
1 回答
689 浏览

ios - NSHTTPCookieStorage 跨多个应用共享

如何跨多个 iOS 应用共享 NSHTTPCookieStorage?我希望 MYAPP A 和 MYAPP B 使用相同的 cookie,这样我就可以轻松地在它们之间切换。

我在中找到了以下方法,NSHTTPCookieStorage.h但没有在文档中看到它。

0 投票
0 回答
843 浏览

ios - NSHTTPCookieStorage - 在应用程序终止(SIGKILL)iOS 8 中丢失 cookie

在我的应用程序注册中,我从服务器获取和设置 cookie 以进行用户身份验证,这是我从服务器获取的标头字段:

[Content-Type: application/json, Pragma: no-cache, X-Powered-By: PHP/5.5.29-1+deb.sury.org~precise+1, Set-Cookie: PHPSESSID_NEW=u3j95qff7100d87pimd56mfc37; 过期=格林威治标准时间 2024 年 4 月 12 日星期五 10:31:46;最大年龄=259200000;路径=/,服务器:nginx/1.1.19,内容编码:gzip,到期时间:星期四,1981 年 11 月 19 日 08:52:00 GMT,缓存控制:无存储,无缓存,必须重新验证,后check=0, pre-check=0, Date: Mon, 25 Jan 2016 10:31:46 GMT, Content-Length: 439, Connection: keep-alive, X-CDN: Incapsula, Vary: Accept-Encoding, X-信息:8-3374242-3308240 SNNY RT(1453717901817 3717) q(0 0 0 0) r(5 5) U5]

我尝试了两种使用 NSHTTPCookieStorage 设置这些字段的方法:

或者:

我设置了另一个函数来检查和打印 cookie 是否设置正确,并在注册和登录后返回一个 NSHTTPCookie 数组,用于多种目的,它的设置很好:

在运行 iOS 9 的设备上,这两种情况下一切正常,但在运行 iOS 8 的设备上,大多数情况下应用程序被系统或用户终止(SIGKILL),持有PHPSESSID_NEW键的 cookie 是从 cookie 存储中删除,并且所有服务器调用都未经过身份验证,因此应用程序收到错误响应。我知道在以前的 iOS 版本中,当系统终止应用程序时,它也会删除 cookie,但在这种情况下,当用户终止应用程序时也会发生这种情况。任何想法为什么会发生?