【问题标题】:Detect if user has a specific Profile installed on their device检测用户是否在其设备上安装了特定的配置文件
【发布时间】:2015-12-06 01:57:34
【问题描述】:

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

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

【问题讨论】:

  • 我不知道答案。我假设任何让您知道非越狱设备上存在哪些其他应用程序的东西都将被视为安全漏洞。不过,我很好奇,如果您确实知道此配置文件的存在不会违反 Apple 的指导方针本身,您可以采取什么行动。 (我假设他们允许这个应用程序是因为他们更看重快乐的用户而不是开发者……但这不是新闻。)
  • @PhillipMills 沙盒环境不允许访问是我的第一个假设,但我之前错了。至于如果这个配置文件是可检测到的,我还不能完全确定实现是什么。我在想一些类似于UIAlertView 的东西,它会在启动时显示,要求用户删除配置文件或通过实际购买remove ads IAP 来帮助支持该应用程序。这只是一个想法。主要部分是查看有多少用户实际安装了它,以决定这是否是一个问题。
  • 通过其安全的 VPN 路由所有网络流量:令人惊讶的是,Apple 允许这样做。

标签: ios configuration-files


【解决方案1】:

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


但如果您只是想知道您的广告是否被投放,您可以通过另一种方式做到这一点:只需尝试加载您的一些广告,看看它们是否真的被加载并采取相应的行动。

这应该很容易实现。这就是您所需要的,您只关心广告被屏蔽的事实,而不是以何种方式。

很多网站都这样做。例如。荷兰科技网站tweakers.net 向屏蔽广告的人提供信息。而且我相信一些 iOS 应用程序也将很快开始这样做。

查看这个 SO question How to detect Adblock on my website? 了解网站处理此问题的一些方式。

【讨论】:

  • 感谢您提供有关配置文件的信息。不过,检查是否正在投放广告并不是一个很好的方法。广告始终无法填充,并且可能永远无法填充某些国家/地区。
  • 在我的回答中添加了一个有趣的 SO 问题的链接。不在那里:您可以从自己的服务器甚至 S3 提供自己的虚假广告,例如一张名为banner_ad_300x250.gif 的图片,其文件名将被大多数广告拦截器拦截,并检查您的应用是否可以加载它。
  • 此配置文件实际上阻止了某些网络流量,方法是通过其 secure VPN 路由所有网络流量,而不是搜索要阻止的文件名。因此,广告请求可能会被阻止,或者广告请求的响应可能会被阻止。无法直接检测到个人资料会导致该问题的大多数选项不可用。
【解决方案2】:

不,由于沙盒,这是不可能的。如果您可以以编程方式检查或安装配置文件,那将是一个巨大的安全问题。 Apple 对安全性非常严格。

您可以在此处找到有关该主题的更多详细信息:iOS - Prevent iPhone Configuration Profile from being deleted OR check to see if it's installed

Retrieving data programmatically from a Configuration Profile in IOS

如何安装配置文件: http://www.howtogeek.com/176195/why-configuration-profiles-can-be-as-dangerous-as-malware-on-iphones-and-ipads/

【讨论】:

  • 明智的做法是从最相关的链接或包含答案的链接中复制关键数据,并将其添加到您的答案中。请务必引用来源。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-04
  • 1970-01-01
  • 1970-01-01
  • 2020-03-05
  • 2023-04-10
  • 1970-01-01
相关资源
最近更新 更多