技术文章 | iOS 防 DNS 污染方案调研 --- Cookie 业务场景
来源:互联网 发布:泰语自学软件 编辑:程序博客网 时间:2024/05/17 09:18
本文来源于阿里云-云栖社区,原文点击这里。
本文将讨论下类似这样的问题:
- WKWebView 对于 Cookie 的管理一直是它的短板,那么 iOS11 是否有改进,如果有,如何利用这样的改进?
- 采用 IP 直连方案后,服务端返回的 Cookie 里的 Domain 字段也会使用 IP 。如果 IP 是动态的,就有可能导致一些问题:由于许多 H5 业务都依赖于 Cookie 作登录态校验,而 WKWebView 上请求不会自动携带 Cookie。
WKWebView 使用 NSURLProtocol 拦截请求无法获取 Cookie 信息
iOS11推出了新的 API WKHTTPCookieStore
可以用来拦截 WKWebView 的 Cookie 信息
用法示例如下:
WKHTTPCookieStore *cookieStroe = self.webView.configuration.websiteDataStore.httpCookieStore; //get cookies [cookieStroe getAllCookies:^(NSArray<NSHTTPCookie *> * _Nonnull cookies) { NSLog(@"All cookies %@",cookies); }]; //set cookie NSMutableDictionary *dict = [NSMutableDictionary dictionary]; dict[NSHTTPCookieName] = @"userid"; dict[NSHTTPCookieValue] = @"123"; dict[NSHTTPCookieDomain] = @"xxxx.com"; dict[NSHTTPCookiePath] = @"/"; NSHTTPCookie *cookie = [NSHTTPCookie cookieWithProperties:dict]; [cookieStroe setCookie:cookie completionHandler:^{ NSLog(@"set cookie"); }]; //delete cookie [cookieStroe deleteCookie:cookie completionHandler:^{ NSLog(@"delete cookie"); }];
利用 iOS11 API WKHTTPCookieStore 解决 WKWebView 首次请求不携带 Cookie 的问题
问题说明:由于许多 H5 业务都依赖于 Cookie 作登录态校验,而 WKWebView 上请求不会自动携带 Cookie。比如,如果你在Native层面做了登陆操作,获取了Cookie信息,也使用NSHTTPCookieStorage 存到了本地,但是使用 WKWebView 打开对应网页时,网页依然处于未登陆状态。如果是登陆也在 WebView 里做的,就不会有这个问题。
展开全文
阅读全文
0 0
- 技术文章 | iOS 防 DNS 污染方案调研 --- Cookie 业务场景
- 技术文章 | iOS 防 DNS 污染方案调研--- HTTPS(非SNI) 业务场景
- 代码干货 | iOS 防 DNS 污染方案调研 --- WebView 业务场景
- openwrt解决dns污染方案 pdnsd+dnsmasq
- DNS污染
- DNS污染
- dns污染
- DNS污染
- 技术文章 | Android Webview场景下防止dns劫持的探索
- 一分钟快速搭建Windows防污染DNS服务器——Pcap_DNSProxy
- DNS污染与DNS劫持
- DNS劫持与DNS污染
- DNS劫持与DNS污染
- DNS 劫持和DNS 污染
- 关于DNS污染
- DNS污染【备忘】
- DNS污染和劫持
- cookie的污染!
- 连接sqlserver需要注意的地方
- ubuntu环境notepadqq
- 机器学习 1
- link的media=”screen”右键打印预览乱码
- Android代码跳转到设置相关
- 技术文章 | iOS 防 DNS 污染方案调研 --- Cookie 业务场景
- Android Studio出现 No service of type Factory available in ProjectScopeServices.的错误解决方案
- 顺时针打印矩阵
- 常用集合存放null
- Windows进程查看与杀死
- Android BLE低功耗蓝牙开发(上)关于GATT服务器的理论与搭建
- python实现简易web多进程静态服务器
- 基础语言百问-Python
- 十一,类型参数化