0

我想从我的 iOS 应用程序向我的服务器发送一条小消息。

但是,我希望高度确信数据实际上是:(1)在设备上生成,(2)由我的应用程序生成。

有没有办法做到这一点?我更关心(1)而不是(2)。

Roku 早就有这样的功能了:http ://sdkdocs.roku.com/display/sdkdoc/Channel+Packaging+And+Publishing#ChannelPackagingAndPublishing-37ContentSecurityModel

每个 Roku 盒子都有一个唯一的客户端证书,由 Roku 作为证书颁发机构签名。该固件还支持一个特殊的标头 x-roku-reserved-dev-id,它始终发送当前运行应用程序的开发者 ID。由于这是权威且无法伪造,因此开发人员的 Web 服务器只能接受来自运行其应用程序的 Roku 流媒体播放器的连接。同样,Roku 流媒体播放器可以通过在其频道应用程序中包含颁发其 Web 服务器证书的权威机构的 CA 证书来强制它正在与开发人员的 Web 服务器对话。

4

1 回答 1

1

通常,您会在发出请求时添加此类信息。您可以添加额外的标题来指定有关您的设备、应用程序、其版本等任何内容的信息。

例子:

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.example.com"]];
[request addValue:@"iOS" forHTTPHeaderField:@"X-platform-name"];
[request addValue:@"ApplicationName" forHTTPHeaderField:@"X-application-name"];

更好的是

[request addValue:[UIDevice currentDevice].model forHTTPHeaderField:@"X-platform-name"];

或者

您也可以使用 Javascript 检查它

var iOS = false;
var p = navigator.platform;

if( p === 'iPad' || p === 'iPhone' || p === 'iPod' ){
    iOS = true;
}
于 2015-01-24T19:47:40.157 回答