前段时间,二狗子的朋友圈被工信部发布的《关于下架侵害用户权益 App 名单的通报》给刷屏了。公告中指出有 90 款 App 未按照要求完成整改将会下架。而这 90 款 App 涉及全国各地教育、游戏、安全、新闻等诸多领域。同时通报中提到,有 5 家企业在 App 不同版本中反复出现同类问题,包括违规收集个人信息、强制用户使用定向推送功能、频繁过度强制索权、欺骗诱导用户下载等。工信部表示将依法暂停其违规行为,予以直接下架处理。

看到这则公告后,本着吃瓜心理,二狗子顺手去搜了一下这 5 家企业,发现他们已经纷纷发表了回应,表示平台排查后发现问题主要在于第三方 SDK 等方面。

其实这类第三方 SDK 插件违法调用手机信息的行为,早在 2020 年的 315 晚会上就被央视曝光过了,目前网络上也经常会出现这类新闻。

1.png

那为何 SDK 这么危险,软件厂商确还要频频使用呢?但是如果要说 SDK,那肯定离不开 API。


API 的出现 

如果想较为详细的了解 API 大家可以阅读《白话科普,10s 了解 API》,这里就给大家简单介绍一下。

API 的全称是 Application Programming Interface,中文名为“应用程序接口”,一般是指一些服务厂商预先定义好的一组向外开放的方法。这些方法直接对应服务厂商的自家服务功能,方便应用程序或开发人员快速调用功能,而无需理解服务厂商工作机制的细节。例如用户如果使用了又拍云短信服务来开发短信发送的功能,那只要按照文档选择想要实现的功能,然后调用短信 API 接口来调用想用服务即可,并不需要知道短信如何传递给客户的技术细节。

2.png

SDK 的诞生

简单了解了 API,我们再回到本文最初所说的 SDK 上来。

所谓 SDK 其实是"软件开发工具包",即 Software Development Kit 的缩写。它一般是指通过第三方服务商实现产品功能的软件工具包。通常,SDK 是由专业的公司提供的,为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具集合。可以将移动支付技术、语音识别技术,或者存储技术等进行专业集合。它有效减少了开发者在新增功能时对产品每一项功能进行开发的时间。

和 API 一样,SDK 由服务厂商提供了,开发者只需要接入相关 SDK,然后做好相关功能接口的联调即可,至于底层逻辑、数据存储等等都不需要去考虑。

3.png

△ 又拍云提供的集云存储和云处理一体的 SDK


API 与 SDK 的区别

那么从结果上看都是让开发者使用三方服务功能的 API 和 SDK 到底有什么区别?为什么说 SDK 就离不开 API?

其实在更多场合下,API 更像是 SDK 的一个子集,这是因为:

  • API 通常是一个接口方法,有特定的功能;而 SDK 是一个很多功能的集合体,更像是一个工具包;

  • API 通常为单个数据接口的形象,SDK 则相当于一个工具环境,通常除了包含了服务的所有 API 功能;

  • SDK 相较于 API 封装层次更高。

为什么 SDK 经常翻车

目前因为各家服务商的提供功能越来越多,同时用户对于 App 的功能需求也逐渐增大,如果每一个功能都是自己开发,那时间和成本都无限延长。因此公司会更偏向选择第三方 SDK 工具包来实现这些功能。这就导致可能很多公司都在用同一个 SDK,一旦这个 SDK 出现了隐私泄露,那牵扯到的也不再仅是一家公司的 App。

那么,如何避开这样的隐私侵害呢?

对于开发商而言,要尽可能选择有一定市场基础的第三方 SDK,比如尽量使用苹果和谷歌商店里选用的 SDK 进行集成。

从个人层面来讲,在下载 App 时,最好选择恶意密度较低的应用商店,比如苹果的 App Store、安卓手机的官方应用商店,不要随意在网站上下载来历不明、未经审核的软件。同时面对安装 App 时弹出的各种权限申请,在给出自己的位置信息、手机通讯录等隐私权限之前一定要认真确认。

最后,国家也一直在政策层面上对此进行监管。要求网络运营者对接入其平台的第三方应用,应明确数据安全要求和责任,督促监督第三方应用运营者加强数据安全管理。

目前国内手机厂商也越来越重视用户隐私,推出“照明弹”等隐私保护功能。一旦这些 App 后台行为的调用逐渐清晰和明朗化,系统也愿意给出更多限制性手段后,守住自己的私密数据,大概就不会成为一个难题了。