0

我想知道是否有任何方法可以限制非 ios 用户访问我的 REST Web 服务。我将 Java 和 Jersey 用于我的 RESTful 应用程序。

本练习的目的是,由于我的 web 服务接受 XML 数据的 POSTS,我想将交换限制在 iphone 客户端,以防止出于安全原因对 xml 进行操作。

客户端是我们开发的一个iphone应用程序。

4

3 回答 3

3

(根据要求从评论中回答)

不。

iPhone 的 TCP 连接与其他连接没有什么不同。您通过该连接接收到的任何“标识符”(例如,用户代理字符串)都可以由任何其他能够建立 TCP 连接的设备生成。

从您的评论中:

是否有某种验证服务,我们可以在其中检查设备令牌是否为 iphone,即苹果设备 ID?

即使有……你现在只是有“默默无闻的安全”;我需要在任何其他设备上做的就是发送一个有效的 id - 你无法分辨是什么在发送它。

于 2013-06-28T18:20:45.120 回答
1

严格来说,不 - 正如其他人所说。

然而,由于

客户端是我们开发的一个iphone应用程序。

...您可以使用该应用程序发送私钥,并希望没有人有足够的动力绕过 Apple 现有的任何安全措施,并对您的应用程序进行逆向工程以获取该密钥。

(请注意,对于 DVD 加密、控制台制造商等而言,这种“安全”模式已经失败了……但如果您的应用程序足够机密并且您保护的数据价值不高,那么它可能对您来说已经足够好了)。

获得该密钥后,您可以根据某种质询(初始请求、带有质询的 401、客户端使用私钥签名质询并通过请求重复发回、服务器使用公钥验证)强制在您的 REST 服务中进行身份验证。

于 2013-06-28T22:48:56.800 回答
0

如果您像这样在代码中检查用户代理可能会有所帮助:

if(request.getHeader("User-Agent").indexOf("iphone") != -1){
        //Execute some code
   }
于 2013-06-28T17:21:46.643 回答