`
taito
  • 浏览: 94390 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

关于设计IOS网络安全策略想到的

阅读更多

关于IOS的网络请求与交互,有一个比较常用的插件就是ASI, 就象 ruby 的 RestClient 。这个工具很多常用的方法,可以解决现在的大部分需求。

不过,对于网络请求的安全机制,都是各个项目写各自的策略,没有一套完美的标准来支持各项业务,所以是时候来统一这个标准了。

在设计这套IOS安全方案之前,也有同事用到过其它的一些第三方网络请求插件,各有优劣。所以为了兼容不同的第三方插件,在设计时也要考虑这一点。

 

另外,关于网络安全策略,也有几套现有国际通用标准,所以除了为我们自己定制的安全策略外,也要能兼容它们,以适应和其它第三方做接口.

然后得到这套初略的设计:



 
BHHTTPRequestFactory  是一个工厂类,可以为各种第三方插件进行支持,以后要添加一个第三方插件,只需要增加一个工厂类和实体类。大家都遵循统一的创建方法createHttpRequest 。这个创建方法同样也遵循统一的网络请求协议,BHHTTPRequestProtocol ,这个协议可以封装我们自己的标准方法。

为了使这个方法支持适应各种标准,所以这里用了策略模式将它放在了一个策略类中:HTTPSecurity , 同样扩展也是非常方便的。

其中有几个细节要注意,ASI已经封装的很好的类了,为了不破坏其基础特性我们这里只是对它进行了继承,然后进行了各自的扩展。  但oc是不支持多重继承,所以这里用到了协议 <BHHTTPRequestProtocol >。 这样它不仅可以用ASI的特性,也可以在其上增加公司自身的安全策略。

在创建这个实体时也只是对其进行接口生成,而不针对具体类,所以就解决了在<BHHTTPRequestFactoryProtocol >创建的实体到底是哪个具体类的情况,不用依赖的这么紧密。

这是实用的一例:

    BHASIRequestFactory *requestF = [[BHASIRequestFactory alloc] init];
   
    id request = [requestF createHttpRequest];
   
    [request createSecurity]; // 创建安全策略
   
    [request buildSecurityParams]; // 完成安全加密等任务




 
以上只是个人的一点拙见!

  • 大小: 18.7 KB
  • 大小: 68.2 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics