<分区>
<分区>
我正在开发一个客户端/服务器 SDK 项目,其中 iOS 客户端 SDK 作为代码而不是静态库分发给开发人员(我们出于商业原因采用这种分发方法)。我遇到过一些情况,我们怀疑某些开发人员正在更改客户端 SDK 代码。我想更新我们的客户端 SDK 以更主动地检测到这一点。
我的一个想法是在代码文件编译时以某种方式对其进行校验和,并让客户端 SDK 在与服务器以及 SDK 版本交互时报告该校验和。在我们发布客户端 SDK 之前,我们会在我们这边标记每个版本的校验和,然后在客户端 SDK 校验和与其版本不正确时拒绝发送到我们服务器的任何内容。
我有几个问题:
最佳答案
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/