Skip to content

Instantly share code, notes, and snippets.

@JeOam
Last active June 21, 2018 09:46
Show Gist options
  • Save JeOam/f7a28be21eefa05bfc7f to your computer and use it in GitHub Desktop.
Save JeOam/f7a28be21eefa05bfc7f to your computer and use it in GitHub Desktop.
Get Bundle ID of Any App

获取应用的 Bundle ID 方法:在 iTools 下,找到 app 名字命名的文件夹 xxx.app,找到 Info.plist,导出,Xcode 打开。

得到 Bundle ID 如:

com.tencent.mipadqq  iPad 版 QQ 4.1
com.tencent.xin  微信 5.3.1.17
@JeOam
Copy link
Author

JeOam commented Jul 24, 2014

重要数据如密码,会话 ID 等等绝不要存储在设备上。如果别无它法,那么应该存在 keychain 中。这是因为只要这个设备不越狱,攻击者不能从 keychain中找出这些数据。有人可能会说 把数据保存到keychain不像把数据保存到NSUserDefaults那么简单。不过我们能够使用第3方封装的代码使得这个过程变得极其简单。例如, 这一篇文章演示了如何使用PDKeychainBindings这个wrapper,展示了把数据保存到keychain中是多么的简单。

不过,请注意在越狱设备上,keychain中的信息并不安全。一个可取的方法就是在把字符串保存到 keychain 之前,先用你自己的加密方法加密一下。这样就有更高的安全性, 因为即使攻击者从 keychain 中拿到这个加密字符串,他也不得不解密这个加密后的字符串。

绝对不要把机密信息如密码,认证令牌等信息保存到 NSUserDefaults。这是因为所有保存到 NSUserDefaults 的信息都是以未经加密的格式保存在一个 plist 文件的,位于你的应用程序 bundle 的Library -> Preferences -> $AppBundleId.plist。任何人都能够使用工具如 iExplorer 来窥视你的应用程序的bundle,然后得到这个plist文件,即使你的设备未越狱。

绝对不要把机密信息如密码等信息保存到Plist文件,因为即使在未越狱设备上要获取这些plist文件也非常容易。所有保存到plist文件的内容都是以未加密的格式保存的。

Cora Data文件同样是以未加密的数据库文件保存在应用程序bundle的。Core Data framework内部使用Sql 查询来保存数据,因此所有文件都是 .db 文件。非常容易就能把这些文件复制到电脑上, 然后用工具如 sqlite3 就能查看这些数据库文件中的所有内容。

via: iOS应用程序安全(25)-iOS开发安全编程实践

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment