ios - 如何验证客户端代码没有被更改?

标签 ios objective-c security

<分区>

我正在开发一个客户端/服务器 SDK 项目,其中 iOS 客户端 SDK 作为代码而不是静态库分发给开发人员(我们出于商业原因采用这种分发方法)。我遇到过一些情况,我们怀疑某些开发人员正在更改客户端 SDK 代码。我想更新我们的客户端 SDK 以更主动地检测到这一点。

我的一个想法是在代码文件编译时以某种方式对其进行校验和,并让客户端 SDK 在与服务器以及 SDK 版本交互时报告该校验和。在我们发布客户端 SDK 之前,我们会在我们这边标记每个版本的校验和,然后在客户端 SDK 校验和与其版本不正确时拒绝发送到我们服务器的任何内容。

我有几个问题:

  1. 我如何在编译时不引人注意地校验客户端 SDK Objective-C 代码?
  2. 有没有更好的方法来实现我的总体目标?

最佳答案

How would I unobtrusively checksum the client SDK Objective-C code at compile time?

我认为这不可能像您想象/想要的那样。如果一个人可以访问源代码,那么他将能够修改任何东西 - 包括硬编码的校验和(而且他无论如何都可以修补检查代码)。

Is there a better way to accomplish my general goal?

嗯...如果您不能将您的库作为封闭源代码分发,那么不,不是真的...也许在许可证中要求不修改代码,并阻止 - 使用服务器 - 那些怀疑, 修改代码。

但尽管如此:你为什么如此关心代码的修改?

关于ios - 如何验证客户端代码没有被更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14540481/

上一篇:ios - 如何使函数在 AFHTTPRequestOperation 完成后返回

下一篇:iphone - 如何通过从 iOS 多任务栏中删除我的应用程序来了解它何时退出

相关文章:

iphone - 如何检测完整的 body ,如手、腿?

php - CakePHP中的唯一 token

ios - 在 UITableView 中垂直滚动时,在 ScrollView 标题上重置 contentOffset

ios - 选择器方法没有被调用

ios - 带有 adjustsFontSizeToFitWidth 的多行 UILabel

ios - 是否可以突出显示 tableView 单元格内的文本子字符串?

objective-c - 引用计数,ARC

html - UiWebView 中的 contenteditable div - 单击完成时不保存新行

asp.net - 保护 SQL Server 2008R2 数据库的安全

php - 我是否需要清理 Laravel 中 DB::query 调用的用户输入?