我们已经开发了一个iOS框架,可以分发给其他开发人员以在他们的应用程序中使用并利用我们将提供的某些服务。它在体外效果很好。但是,由于URL Loading System在iOS中的工作方式,通过几行代码,我们的所有URL都对每个开发人员都是肉眼可见的,其中包括我们珍视的所有HTTPS URL。

我知道通过模糊性实现安全绝不是一个好主意(由于HTTPS的普遍误解阴影在外部客户端始终是透明的),但是我仍然有此要求,以某种方式使实现开发人员无法看到我们的URL。

到目前为止,我已经考虑过为我们的框架实现一个简单的NSURLConnection替代方案,但是考虑到HTTPS要求以及所有这些,这似乎是一项艰巨的任务。

无论如何,我们可以阻止NSURLProtocol注册更多的类或任何其他选项吗?

以下是一些有关NSURLProtocol如何破坏您的安全性的示例代码:

 class NetSniffer : NSURLProtocol {

  override class func canInitWithRequest(request: NSURLRequest) -> Bool {
    print("\(request.URL?.absoluteURL)")
    return false
  }


}


并在您的application(_, didFinishLaunchingWithOptions:)-> Bool中:

NSURLProtocol.registerClass(NetSniffer)


附注:我能清楚地记得我曾经尝试更改与AVPlayer相关的某些url连接的结果以创建自定义DRM的过程,并且遇到了一些不寻常的事实,即没有任何数据连接是由NSURLProtocol触发的!可能是个线索吗?

最佳答案

如果阻止NSURLProtocol.registerClass,则会破坏很多有用的代码。

尝试隐藏您的URL是徒劳的。如果有人想对您的API进行反向工程,他们会做。

关于ios - 防止NSURLProtocol实现读取URL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34721631/

10-12 12:19