我有一个用.NET编写的Web服务,它为iPhone应用程序提供数据。它还允许应用程序进行“预订”。
目前它全部都在公司网络内部,但很明显,当iPhone应用程序发布时,我需要确保Web服务在外部可用。
我如何保护Web服务?
我正在研究两个方面:
我对来回传递的数据并不感到困扰,因为无论如何它都可以在应用程序中查看(这将是免费的)。对我而言,关键问题是阻止用户访问Web服务并自行进行预订。
目前我正在考虑加密来回传递的XML数据中的任何字符串,这样只有客户才能有效地使用Web服务来回避身份验证的需要并为数据提供保护。这是我见过的唯一模型,但我认为iPhone上的开销甚至是Web服务的开销都会导致用户体验不佳。
答案 0 :(得分:5)
只需使用https进行网络服务调用即可。然后,您可以使用您想要的任何身份验证,并可能会收到一个令牌,该令牌将传递给后续的Web服务调用。您的身份验证详细信息和数据将受到保护。会有一些开销,但不应该很大。
答案 1 :(得分:2)
https是一个简单的答案,但您不仅应该为服务器提供自己的服务 证书,但每个移动设备给一个。这允许相互认证。
如果您无法执行此操作,则可以使用AES对来自iphone的消息进行签名 到服务器,使用只知道服务器和iPhone的共享密钥,但是 永远不会传播:
签名= AES(数据+ iphone udid +共享密钥) (或者那种效果)
您应该选择分发秘密的方式 这允许您验证其他部分。
答案 2 :(得分:0)
我更喜欢加密(Base64 / AES)+ HTTPS。 oData,oAuth身份验证也可以使用。