我正在为具有严格安全要求的客户设计iOS应用。我需要使用Omniture记录分析。该应用程序处理极其敏感的数据,为了安全起见,我无法直接向应用程序调用Omniture sitecatalyst网址。相反,我必须在后端Web / app服务器上设置一个服务,然后调用Omniture(这样调用就像通过iOS应用程序调用的其他Web服务一样通过安全网关路由)
我看到了两个选项。
我在我的应用程序中设置了Omniture框架并进行调用(除了我将调用配置为https://myserverurl.com/analyticsservice而不是https://sc.omniture.com)然后我在{{{}}设置了一个servlet或jsp {3}}来处理请求。 servlet(使用Omniture SDK编写)然后将调用传递给https://myserverurl.com/analyticsservice。
我没有在我的应用上设置任何Omniture框架。相反,我在我的服务器上设置了一个简单的分析Web服务。 Web服务(使用Onniture SDK编写)将获取我从iOS应用程序传递的参数,并将跟踪调用发送到https://sc.omniture.com。
参见图1和图2,说明了每个选项。选项2看起来更清晰,而选项1可能需要一些玩弄 - 操纵装置才能让Omniture工作。在我深入了解概念证明之前,我会很感激任何意见和建议,包括选择(利弊,其他考虑因素等)。
谢谢!
答案 0 :(得分:1)
Omniture网址也是https,我猜。通过执行所有这些操作(发送到您的服务器并回发到omniture),我不确定您是否获得任何额外的安全性。另一方面,您必须拥有一个高容量后端来处理所有这些数据。
同样,如果有人能够从https窃取数据,他甚至可以从你从后端到omniture的连接中做到这一点。
我建议您在将事件发送到Omniture之前删除所有可识别个人身份的敏感数据。并将其直接从您的iOS应用程序发送到omniture服务器。这对你紧迫的时间表非常友好: - )
(或者我完全理解错误了吗?)
答案 1 :(得分:0)
在两种方法上运行POC后 - 我发现方法2是正确的方法。方法1实际上不起作用 - 原因是Omniture客户端API是应用程序启动和App中的本地Omniture数据库激活的第一件事。在对用户进行身份验证后,应用程序(使用自定义安全API编码)删除默认应用程序容器并将其替换为自己的容器。因此下一次Omniture尝试记录任何它尝试写入它所保持的数据库指针(当它创建本地数据库时)不知道该应用程序在重新创建应用程序容器时替换了该数据库。这会导致应用程序崩溃。
所以答案结果是接近2.