首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS:如何为NSHTTPCookie设置httponly标志

iOS:如何为NSHTTPCookie设置httponly标志
EN

Stack Overflow用户
提问于 2014-12-31 10:20:48
回答 2查看 5.7K关注 0票数 4

我使用下面的代码来构造NSHTTPCookie,但是没有选项可以设置cookie的httpOnly标志

代码语言:javascript
复制
[cookieProperties setObject:@"name" forKey:NSHTTPCookieName];
[cookieProperties setObject:@"value" forKey:NSHTTPCookieValue];
[cookieProperties setObject:[NSNumber numberWithBool: NO] forKey:NSHTTPCookieDiscard];
[cookieProperties setObject:[dictionary objectForKey:@"isSecure"] forKey:NSHTTPCookieSecure];


[cookieProperties setObject:@"abc.xyz.com" forKey:NSHTTPCookieDomain];
[cookieProperties setObject:@"abc.xyz.com" forKey:NSHTTPCookieOriginURL];
[cookieProperties setObject:@"/" forKey:NSHTTPCookiePath];
[cookieProperties setObject:@"0" forKey:NSHTTPCookieVersion];
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-20 07:35:02

来自苹果公司的文档:

HTTPOnly性质 一个布尔值,指示接收器是否只应按照RFC 2965发送到HTTP服务器。(只读) 声明 斯威夫特 var HTTPOnly: Bool { get } 目标-C @property(readonly,getter=isHTTPOnly) BOOL HTTPOnly返回是,如果这个cookie只应该通过headers发送,而不是其他。 Cookies只能由服务器(或javascript)标记为HTTP。标记为这样的cookie只能通过HTTP请求中的Headers发送,这些请求与相应cookie的路径和域匹配。

您只能从服务器或通过javascript设置HTTPOnly标志。这在本机iOS应用程序代码中是不可能的。

票数 3
EN

Stack Overflow用户

发布于 2017-01-17 12:44:36

有一个未记录的cookie属性密钥 (通过@mikewest找到):

// NSHTTPCookie的无证财产。 kNSHTTPCookieHttpOnly = @"HttpOnly";

我在Swift中尝试过,它的代码实现了它所期望的效果。

代码语言:javascript
复制
import Foundation

extension HTTPCookiePropertyKey {
    static let httpOnly = HTTPCookiePropertyKey("HttpOnly")
}

let cookie = HTTPCookie(properties: [
  .domain: "example.org",
  .path: "/",
  .name: "Cookie Example",
  .value: "Om nom nom",

  .version: 1, // RFC2965 for HttpOnly cookies
  .httpOnly: true
])!

print(cookie.isHTTPOnly) // true
票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27719699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档