验证网络请求是否由 iOS 应用程序发送

Ale*_*nov 5 iphone networking sign ios

我正在尝试验证来自 iOS 应用程序的 HTTP 请求确实是从移动应用程序发送的。目前服务器代码只是检查“User-Agent”HTTP 标头,当然这不是很可靠的解决方案。

以下是我如何看待当前的 iOS SDK 可用于验证客户端是否是实际的 iPhone 用户。

推送通知

  1. iOS 应用程序从操作系统请求推送令牌并将其发送到服务器
  2. 服务器使用隐藏标识符向应用程序发送推送通知
  3. iOS 应用程序将接收到的标识符发送到服务器
  4. 服务器用 cookie 响应

在通信的第一阶段,我们可以验证用户是移动用户,因为她如何从推送通知到特定应用程序获得标识符。

迪斯。即使我们可以重复推送通知,也不太可靠。滥用推送通知。

在应用程序内购买

可以在此处重复使用收据验证。

迪斯。明显的滥用。令人困惑。


所以问题是 - 是否有任何正确的方法来确认请求是从 iOS 应用程序,从 iOS 设备发送的?

Ale*_*nov 5

iOS11引入了新的API https://developer.apple.com/documentation/devicecheck#overview 看起来它解决了问题。