如何证明请求来自真实的 iOS 或 Android 设备?

问题描述 投票:0回答:2

我正在构建一个向服务器发出 HTTP 请求的应用程序。我想知道请求来自从 iOS App Store 或 Android App Store 下载的应用程序。有什么办法可以做到这一点吗?

也许手机上的某种 API 允许与某个证书颁发机构进行签名,而该证书颁发机构本身是由 Apple 的根证书颁发机构签名的?或者与Android类似的东西?

或者也许有某种方法可以使用像 this 这样的“广告标识符”,但不会与 this 发生冲突……Android 有类似的东西吗?

我需要这个主要是为了防止女巫攻击(人们在不购买一百万部 iPhone 的情况下创建数百万个帐户)。

但也许更重要的是,我希望应用程序在服务器上建立一个帐户,而不是让一些小丑向同一服务器发送请求来随意覆盖用户的“udid”,这样应用程序以后就无法连接。我想我可以通过在网络浏览器的浏览器选项卡下保存 cookie 或 localStorage 来防止后一种情况,并希望它不会被清除。

android ios authentication https account
2个回答
0
投票

回答我自己的问题:这称为证明。

在 iOS 上,在 Swift 和 Objective C 中,它称为 DCAppAttestService:

https://developer.apple.com/documentation/devicecheck/builting-your-app-s-integrity

Google 有 SafetyNet 证明 API,但他们正在弃用它:

https://developer.android.com/privacy-and-security/safetynet/deprecation-timeline

在网络上,有时您还可以使用网络身份验证证明,但它们用于身份验证器,可能是也可能不是手机本身。无论如何,它确实保证了稀缺性:

https://developer.mozilla.org/en-US/docs/Web/API/Web_Authentication_API/Attestation_and_Assertion


-1
投票

您可能想尝试设置请求标头来识别代理,

您可以设置

User-Agent: iOS
User-Agent: Android
application-type
来识别设备类型。

x-application-key:38567940-b045-4b37-9999-d6c3b960af9e
application-type:iPhone
key-state:VALID
Content-Type:application/json
Accept-Language:en_US
x-type-mdm:ENABLE
User-Agent: iOS

HTTP Request

© www.soinside.com 2019 - 2024. All rights reserved.