MASTG-TEST-0073: 测试 UIPasteboard
已弃用测试
此测试已**弃用**,不应再使用。**原因**:MASTG V2 中提供新版本
请查看以下涵盖此 v1 测试的 MASTG v2 测试
概述¶
静态分析¶
可以通过使用 generalPasteboard
来获取系统范围内的通用剪贴板,在源代码或编译后的二进制文件中搜索此方法。 处理敏感数据时应避免使用系统范围内的通用剪贴板。
可以使用 pasteboardWithName:create:
或 pasteboardWithUniqueName
创建自定义剪贴板。 验证自定义剪贴板是否设置为持久性,因为自 iOS 10 以来已弃用。 应该改用共享容器。
此外,还可以检查以下内容
- 检查是否使用
removePasteboardWithName:
移除剪贴板,该方法使应用剪贴板失效,从而释放它使用的所有资源(对通用剪贴板无效)。 - 检查是否存在排除的剪贴板,应该调用带有
UIPasteboardOptionLocalOnly
选项的setItems:options:
。 - 检查是否存在过期的剪贴板,应该调用带有
UIPasteboardOptionExpirationDate
选项的setItems:options:
。 - 检查应用程序在进入后台或终止时是否清除剪贴板内容。 这是由一些密码管理器应用程序完成的,目的是限制敏感数据的暴露。
动态分析¶
检测剪贴板的使用¶
Hook 或跟踪以下内容
generalPasteboard
用于系统范围内的通用剪贴板。pasteboardWithName:create:
和pasteboardWithUniqueName
用于自定义剪贴板。
检测持久性剪贴板的使用¶
Hook 或跟踪已弃用的 setPersistent:
方法,并验证是否正在调用它。
监控和检查剪贴板内容¶
要在运行时监控和检查剪贴板内容,您可以按照 监控剪贴板 中的说明进行操作。