关于iOS SDK中HTTPS强制握手的经验分享

因项目需要,对HTTPS强制握手作了研究,分享处理方法如下:

一、 问题与需求

  问题:接入方可能对同个域名做了HTTPS证书验证,在缓存机制下,进入SDK中默认复用HTTPS握手;或者NSURLProtocol对验证作了拦截。

  需求: 基于SDK方不信任接入方验证,需强制重新握手。

二、理论前提

  1. 握手缓存以IP地址,DNS域名,端口为KEY对握手作缓存

  2. “www.xxx.com”, “www.xxx.com.”会有相同的DNS解析结果

三、解决方案

  1. 服务器方给出专用IP,域名或端口

  2. 客户端:

    a. 在统一入口的API访问时,将域名后加“.”作为伪造URL

    b. 伪造URL触发握手后,请求返回didLoad或失败did fail均不作处理,将伪造API去除“.”,

    变回标准API,继续正常通讯

    c. SDK握手添加标识,因URLProtocol或证书缓存导致的 “跳过验证“ 均可被防御

四、负作用

  1.不复用接入方的握手,增加了网络访问时间

2.增加了一次伪造URL访问的通讯时间

时间: 2024-12-10 20:52:41

关于iOS SDK中HTTPS强制握手的经验分享的相关文章

iOS SDK中使用NSXMLParser解析XML(iphone网络篇三)

iOS SDK的NSXMLParser解析XML文档是事件驱动模式的,即采用SAX方式来解析XML格式文档.NSXMLParser在处理XML文档的过程中当遇到一些要素(元素.属性.CDATA块.评论等)时会通知它的委托,而自身不对解析的要素进行任何处理,全权委托给NSXMLParserDelegate处理.同时它也会报告错误. 1. 打开一个xml文件,读取内容到NSData中. NSString *path = [[NSBundle mainBundle] pathForResource:@

我实践工作中的一些软件性能测试经验分享

 首先,对所有的业务都进行性能测试是不可行,也是不现实的. (1)选取业务量较大的业务,比如某电商平台明天上午10点有个特卖会,那么这个特卖会的业务用户访问量较大,所以在上线之前要做好充分的测试验证,才能决定是否上线. (2)需要重点关注的业务,比如对应电子商务平台的用户下单,提交订单,如果在同样的时间段内某个平台生成的订单数量越少,那么对公司来说是不可容忍的. (3)选取业务量不大,但是该业务消耗系统资源的业务. (4)把用户操最常用,最频繁的操作业务拿来做测试(比如对于GIS地图的放大,

IOS SDK详解

来源:http://blog.csdn.net/column/details/huangwenchen-ios-sdk.html?page=1#42803301 博客专栏>移动开发专栏>IOS SDK详解 分享到:新浪微博腾讯微博IOS SDK详解 本专栏从IOS SDK中常用的Framework出发,继而深入的介绍各个Framework.每个Framework博主都会进行Demo 收藏 订阅 最新更新文章 [移动开发] IOS SDK详解之CALayer(二) 原创Blog,转载请注明出处

IOS开发中 常常遇到的遇到的警告,错误汇总,解决方法

从sdk3.2.5升级到sdk 5.1中间废弃了很多的方法,还有一些逻辑关系更加严谨了. 1,警告:"xoxoxoxo"  is deprecated 解决办法:查看xoxoxoxo的这个方法的文档,替换掉这个方法即可. 2,警告:Declaration of "struct sockaddr" will not be visible outside of this function 解决办法:在你的开源.m文件中添加 #import <netinet/in.

经常使用的iOS SDK库和第三方库

iOS SDK库 1.Foundation Cocoa不是一种编程语言(它可以运行多种编程语言),它也不是一个开发工具(通过命令行我们仍然可以开发Cocoa程序),它是创建Mac OS X和IOS程序的原生面向对象API,为这两者应用提供了编程环境. 我们通常称为“Cocoa框架”,事实上Cocoa本身是一个框架的集合,它包含了众多子框架,其中最重要的要数“Foundation”和“UIKit”.前者是框架的基础,和界面无关,其中包含了大量常用的API:后者是基础的UI类库,以后我们在IOS开发

iOS开发中的UIWebView的一些技巧

很久没写博客了,今天终于闲来有时间,总结下这段时间遇到的UIWebView上的一些小技术问题.UIWebView是iOS sdk中一个最常用的控件.是内置的浏览器控件,我们可以用它来浏览网页.打开文档等等.但有时我们会遇到一个问题,就是如何实现点击webView加载的图片以放大浏览,这其中就要用到JavaScript脚本语言,这里要想进行Objective-C与JavaScript的交互操作,就需要使用oc中的 stringByEvaluatingJavaScriptFromString:方法,

iOS的应用程序实现之间的内容分享

前言 我们在iOS的平台上想要实现不同应用之间的内容分享一般有几种常用方式: 一种第的英文通过AirDrop实现不同设备的应用之间文档和数据的分享; 第二种是给每个应用程序定义一个URL方案,通过访问指定了URL Scheme的一个URL,实现直接访问一个APP; 第三种是通过UIDocumentInteractionController或者是UIActivityViewController这两个个iOS SDK中封装好的类在App之间发送数据,分享数据和操作数据; 第四种是通过App Exte

IOS 应用中从竖屏模式强制转换为横屏模式

在 iPhone 应用里,有时我们想强行把显示模式从纵屏改为横屏(反之亦然),CocoaChina 会员 "alienblue" 为我们提供了两种思路 第一种:通过人为的办法改变view.transform的属性. 具体办法: view.transform一般是View的旋转,拉伸移动等属性,类似view.layer.transform,区别在于View.transform是二维的,也就是使用仿射的办法通常就是带有前缀CGAffineTransform的类(可以到API文档里面搜索这个

IOS中快速集成短信SDK验证开发(SMSSDK),IOS开发中如何设置手机验证码

[转载请注明出处] sdk是别人的,我只是下载来集成一下. smssdk下载网站:http://www.mob.com/(也有其他很多网站有类似SDK,譬如https://www.juhe.cn/等等,可以自行百度,我在这里就演示一下MOB官网的) 此网站号称smssdk免费,可是进去一看........ 每天免费20条,上限登记了才永久免费.不多说了,开始...... 官网集成文档http://wiki.mob.com/ [1~3步]我就截图官方文档了,傻瓜式操作 [4.1]:先看官网说明: