检测用户设备上是否安装了特定的配置文件

17
今天我发现了一个名为Adblock Mobile的应用程序,它在用户设备上安装一个配置文件,并通过其安全VPN路由所有网络流量,以禁用/阻止广告,无论是在浏览网页还是使用实施广告(例如横幅或插页式广告)的应用程序中。我的大部分应用程序收入都基于广告,所以这让我有些担心,而且我真的很惊讶苹果会批准这个应用程序,因为它会阻碍iAd按预期工作。

有没有一种方法可以访问用户已安装的配置文件,以检查此配置文件是否从我的应用程序安装?

Adblock Profile


1
我不知道答案。我认为任何可以让你知道非越狱设备上存在哪些其他应用程序的东西都会被视为安全漏洞。但是,如果您确实知道此配置文件存在,您可以采取什么行动而不违反苹果的指南呢?(我认为他们允许此应用程序是因为他们更看重用户的满意度而不是开发人员...但这并不是新闻。) - Phillip Mills
@PhillipMills 沙盒环境不允许访问是我的第一个猜测,但我以前也犯过错。至于如果可以检测到此配置文件,实现将是什么,我还不太确定。我想到的是类似于 UIAlertView 的东西,在启动时显示,要求用户删除配置文件或通过实际购买“去除广告”IAP来支持应用程序。这只是一个想法。主要部分是看有多少用户实际安装了它,以决定是否从一开始就存在问题。 - Daniel Storm
路由所有的网络流量通过其安全VPN:令人惊讶的是,苹果允许这样做。 - user523234
2个回答

3
不,无法检查配置文件是否存在。一些来源如下:

但是,如果您只想知道您的广告是否已提供服务,可以用另一种方式进行:直接尝试加载一些广告,然后查看它们是否真正加载,并根据情况采取行动。

这应该很容易实现。你只关心广告是否被阻挡,而不关心阻挡的方式。

相当多的网站都这样做。例如,荷兰技术网站 tweakers.net 向使用广告拦截工具的人提供了一条消息。我相信一些iOS应用程序也会很快开始这样做。

查看此SO问题 如何检测我的网站上的广告拦截? 以了解网站处理此问题的一些方法。


感谢您提供有关配置文件的信息。然而,检查广告是否正在投放并不是一个很好的方法。广告填充率经常会出现问题,并且在某些国家可能永远无法填充。 - Daniel Storm
1
我在我的答案中添加了一个有趣的 SO 问题链接。不在那里:您可以从自己的服务器甚至从 S3 提供自己的虚假广告,例如称为 banner_ad_300x250.gif 的图像,文件名会被大多数广告拦截器阻止,并检查您的应用程序是否能够加载它。 - the
该配置文件实际上通过将所有网络流量路由到其安全 VPN中来阻止某些网络流量,而不是搜索要阻止的文件名。因此,广告请求可能会被阻止,或者广告请求的响应可能会被阻止。无法直接检测配置文件使得该问题的大多数选项不可用。 - Daniel Storm

1
抱歉,由于沙盒机制的限制,这是不可能的。如果您可以以编程方式检查或安装配置文件,这将是一个巨大的安全问题。苹果公司非常严格要求安全性。
有关该主题的更多详细信息,请访问:iOS-防止iPhone配置文件被删除或检查其是否已安装 从IOS配置文件中以编程方式检索数据的详细信息请参见:从IOS配置文件中以编程方式检索数据 如何安装配置文件: http://www.howtogeek.com/176195/why-configuration-profiles-can-be-as-dangerous-as-malware-on-iphones-and-ipads/

4
最明智的做法是从最相关的链接或包含答案的链接中复制关键数据,并将其添加到你的回答中。记得引用资料来源。 - CaptJak

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接