美文网首页iOS调试技巧iOS Developer程序员
苹果APP接入HTTPS延迟截止时间是妥协吗

苹果APP接入HTTPS延迟截止时间是妥协吗

作者: 仁伯 | 来源:发表于2016-12-23 09:12 被阅读1983次

妥协?

时间临近2017年1月1日,对于其他开发者来说,这是再普通不过的元旦。然而对于我等iOS小民而言,怕要彻夜难眠了。跟领导说:“老大,元旦之后,苹果不让“裸奔”了”,领导总是一副不屑的眼神:“等等看,车到山前自有路,总会有办法的”。

好打脸,这下好了,12月21日,苹果发文,苹果APP接入HTTPS截止日期延迟,具体日期待定......

好吧!领导,您是对的!

[链接地址:Supporting App Transport Security](https://developer.apple.com/news/?id=12212016b)

看到这则消息,很多人都在为还能继续“裸奔”而欢呼雀跃,自欺欺人的以为这是苹果妥协的结果,事实真的如此吗?对于这种观点,我只能送你一句,别高兴太早,人家只是告诉你:“小子,这次我们是要玩真的”

强制使用ATS是不是苹果过于激进,那以后上线版本是不是必须要买证书啦,也不见得,其实iOS依旧可以使用HTTP,只是我们上线的时候,要做出合理解释而已。擦边球还是可以打一下的,我们可以在info.plist中,将服务端host:xxx.com添加到Exception Domains中,分别设置(可悲的是擦边球只能iOS10+):╮(╯_╰)╭

NSIncludesSubdomains: YES;                               // 含义是子域名是否适用
NSExceptionAllowsInsecureHTTPLoads: YES;   // 是否允许不安全HTTP负载
NSExceptionRequiresForwardSecrecy: NO;       // 是否适用前置加密

或者
NSIncludesSubdomains: YES;
NSThirdPartyExceptionAllowsInsecureHTTPLoads: YES; // 是否允许第三方不安全HTTP负载
NSThirdPartyExceptionRequiresForwardSecrecy: NO;    // 第三方是否适用前置加密
info.plist

即,将域名xxx.com避开ATS验证,依旧支持HTTP,不过我们需要解释说明,可以说需要访问的域名是第三方的,他们不支持HTTPS,不过如果访问的是自己的服务器的话,这个理由有点悬iOS喵神[2]不过为稳妥起见,我们还是尽快适配HTTPS为好。

info.plist code:
<key>NSExceptionDomains</key>
<dict>
    <key>xxx.com</key>
    <dict>
        <key>NSIncludesSubdomains</key>
        <true/>
        <key> NSExceptionAllowsInsecureHTTPLoads </key>
        <true/>
        <key> NSExceptionRequiresForwardSecrecy </key>
        <false/>
    </dict>
    ......
    <key>weibo.cn</key>
    <dict>
        <key>NSExceptionMinimumTLSVersion</key>
        <string>TLSv1.0</string>
        <key>NSIncludesSubdomains</key>
        <true/>
        <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
        <false/>
    </dict>
</dict>

参考:
【1】 苹果ATS(强制HTTPS)审核新政解码
【2】关于 iOS 10 中 ATS 的问题

相关文章

网友评论

    本文标题:苹果APP接入HTTPS延迟截止时间是妥协吗

    本文链接:https://www.haomeiwen.com/subject/ymxkvttx.html