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

如何证明请求来自真实的iOS或Android设备?,android,ios,authentication,https,account,Android,Ios,Authentication,Https,Account,我正在构建一个应用程序,可以向服务器发出HTTP请求。我想知道请求来自于从iOS应用商店或Android应用商店下载的应用程序。有没有办法做到这一点 也许手机上的某种API允许使用某个证书颁发机构进行签名,该机构本身由苹果的根证书颁发机构签名?或者类似于Android的东西 或者,也许有某种方法可以使用“广告标识”,比如但不与……相冲突。。。Android有类似的功能吗 我之所以需要它,主要是为了防止sybil攻击(人们在不购买一百万部iPhone的情况下就拥有数百万个帐户) 但也许更重要的是,

我正在构建一个应用程序,可以向服务器发出HTTP请求。我想知道请求来自于从iOS应用商店或Android应用商店下载的应用程序。有没有办法做到这一点

也许手机上的某种API允许使用某个证书颁发机构进行签名,该机构本身由苹果的根证书颁发机构签名?或者类似于Android的东西

或者,也许有某种方法可以使用“广告标识”,比如但不与……相冲突。。。Android有类似的功能吗

我之所以需要它,主要是为了防止sybil攻击(人们在不购买一百万部iPhone的情况下就拥有数百万个帐户)


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

您可能需要尝试设置请求头以识别代理

您可以设置
用户代理:iOS
用户代理:Android
,以及
应用程序类型
,以识别设备类型

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

是的,我可以在应用程序的网络视图中执行此操作。但是用户代理仍然只是由某个客户端发送,很容易被欺骗。但是,我同意,这确实解决了第二个问题(不允许某些小丑向同一服务器发送请求来覆盖用户的“udid”,因为这要么发生在Safari中,要么没有经过身份验证的会话。但是,它仍然无法阻止Sybil攻击,因为攻击者可以在不购买数百万部iPhone的情况下生成数百万个帐户。您是否尝试过从请求头测试用户代理?线程可能很有用。但是用户代理仍然只是由某个客户端发送的,它很容易被欺骗。但是,我同意,这确实解决了第二个问题(不允许某些小丑向同一服务器发送请求来覆盖用户的“udid”,因为这要么发生在Safari中,要么没有经过身份验证的会话。然而,它仍然无法阻止Sybil攻击,因为攻击者可以在不购买数百万部iPhone的情况下生成数百万个帐户。