ios - 在第三方 SDK 集成之前需要考虑哪些安全参数
问题描述
致力于安全对于任何项目都至关重要。目前正在寻找将第三方 SDK 集成到我的 iOS 应用程序中。但是在此之前,我想彻底分析和审查 SDK。
一些检查站是 -
- 粘贴板分析
- Apple 禁止使用私有 API,例如 CTTelephonyNetworkInfo
- 数据库加密(如果有由 SDK 创建的)
我在这里寻找的答案是我可以实现上述目标的方式以及我应该寻找的任何其他东西。
我知道这个问题听起来可能与主题无关,或者更像是一个讨论,但是这样的清单对于所有开发人员来说都非常重要。
解决方案
所以我能够检查一个简单的清单。但是,我相信这个答案会很快过时。我仍然会分享我应该分享的东西。
- 粘贴板分析- 这是检查 SDK 是否复制公共粘贴板上的任何内容。由于这是在所有应用程序之间共享的,因此可能会导致漏洞。
- 持久数据- 将 SDK 添加到应用程序并检查它是否创建任何持久存储,如 .sqlite 文件。检查此文件的内容以了解存储的内容以及此信息是否以任何方式敏感。
- UserPreferences - NSUserPreferences 可以在任何 SDK 中广泛使用,这会导致数据被存储为简单的文本格式。
- 私有 API 使用- SDK 可以借助 NSClassFromString 和 NSSelectorFromString 等方法使用私有 iOS API。Apple 禁止使用此类 API,并可能导致审核被拒绝。
可以密切关注下面的帖子。这将有助于了解如何进行课堂转储。检查硬编码字符串。Hopper Disassembler的特别使用对我很有帮助。
推荐阅读
- sql - 日期格式 YYYY-MM-DDTHH:MM:SS.SSS+0000 上的 SQLlite 函数
- javascript - Text Tag React Native 中的函数
- kubernetes - “kubeadm upgrade apply v1.18.0-00”好像没有升级主节点
- python - 使用精灵表无法到达任何地方。我看过很多教程并在这里阅读
- c# - 如何在 .NET Core (C#) 中将此 SQL 查询编写为 LINQ 语句?
- c# - 当通过网络接收的数据更改属性时,如何将控件绑定到属性更改?
- vagrant - QEMU、KVM、Libvirt 有什么区别,如何配合 Vagrant 使用?这三个需要一起工作吗?
- c++ - WinAPI 如何移动窗口内容?
- node.js - 使用 tsconfig-paths-webpack-plugin 为“fs”和其他标准模块提供“Module not found”错误
- node.js - 使用 PM2 在端口 80 上运行的节点服务器错误