如何实现稍微复杂的IOS设备封禁功能

How to implement a slightly more sophisticated IOS device ban feature

提问人:Jerry Jumps 提问时间:9/15/2023 最后编辑:Jerry Jumps 更新时间:9/15/2023 访问量:107

问:

我已经为 iOS 应用程序编写了 4 个月的大部分时间,并希望实现一项功能,如果用户设备永久违反应用程序政策,我可以禁止用户设备。(如果应用程序被滥用于违法等)

我在stackoverflow上找到了另一篇文章,但是当谈到其他应用程序(尤其是Snapchat)如何做到这一点时,我还有一些额外的问题。

我完全没有想过要真正制作这个功能,直到我自己让我的设备被 Snapchat 禁止,我已经上诉并联系了支持人员,因为我没有违反它,但与此同时,我做了一些研究 -

从我收集到的信息中,一个独特的值可以存储在钥匙串中。我可以使用IP禁令的一些变体。以及各种明显的技术。然而。鉴于 Apple 不再允许应用程序从手机获取持久性数据,例如 IMEI 号码,Snapchat 如何成功检测我是否已将手机恢复出厂设置?我什至使用不同的 Apple ID。还有不同的 WIFI 和 IP。那么肯定没有更多的持久标识符了吗?我什至尝试将SIM卡从手机中取出(我是欧洲人)并将其放入另一部手机中。然后我继续设置我的设备,然后向另一部手机发送代码。我下载了 Snapchat,他们仍然可以检测到我的手机。

我怎样才能实现 Snapchat 所拥有的同样的东西?任何帮助将不胜感激。

到目前为止,我正在实施钥匙串和 IP 禁令,但是我想要在我的应用程序中获得更多功能,如上所述。

iOS iPhone 安全 手机 钥匙串

评论

1赞 Paulw11 9/15/2023
不要使用 IP 禁令 - 由于 CGNAT 等技术,附带损害的风险很高。可以使用 DeviceCheck 框架来存储与设备相关的两位持久性数据。
0赞 Jerry Jumps 9/15/2023
@Paulw11我研究了这一点,似乎正是我需要的。基本上,我会得到Apple识别设备的真假背面。另一方面,用户是否有任何方法可以重置它,以便 api 返回 false?也许他们可以提出一个我不确定的请求?谢谢。
0赞 Paulw11 9/15/2023
不。此解决方案的缺点是它与设备相关联。如果被封禁的用户出售了他们的设备,那么新所有者也将被禁止使用您的应用。您需要提供自己的机制来取消对设备的禁令。也许用户可以联系你,如果你同意取消禁止他们的设备,你可以向他们提供一个代码,他们可以输入到你的应用程序中。您的应用将验证代码并清除被禁止的位。
0赞 Jerry Jumps 9/15/2023
@Paulw11我明白了,谢谢。Apple 无法自行重置标识符吗?否则,对于我想要的东西来说,这个解决方案可能有点矫枉过正。此外,发送哪些信息以获得真假?
0赞 Paulw11 9/15/2023
不,据我所知,苹果无法清除它。Apple 没有透露他们如何识别设备,但我想他们会根据您的应用程序捆绑包 ID 和设备 UDID 发送一个值

答: 暂无答案