限制/保护特定移动应用程序使用的 Google Appengine servlet(REST 服务提供商)

发布于 2024-11-10 06:47:06 字数 800 浏览 3 评论 0原文

通过仅允许来自特定应用程序的 iOS 或 Android 设备的请求来保护 REST 服务提供程序(假设在 google appengine 上运行的 java servlet)的最佳解决方案是什么?

假设我有一个在 google appengine 上运行的 servlet,它执行一些处理并使用一些 JSON 数据响应 GET 请求。我想限制对在 Android 和 iOS 上运行的应用程序的访问。

我当前的解决方案是:

  1. 使用 if(tokenValue == request.getHeader(tokenKey)) 上 应用程序引擎 servlet。和 response.addHeader(tokenKey, tokenValue) 在移动应用程序上 代码。所以基本上只有我的应用程序会 知道令牌密钥。
  2. 对于上述解决方案,appengine,请使用 HTTP(s)支持此
  3. 使用 oAuth - 但我需要让用户签名-on 到某个 oAuth 提供商应用程序,这使应用程序变得复杂

建议其他有用的方法来解决这个问题。假设此 servlet 仅服务 GET 请求,并且可能使用 Restlet 或 Jackson

What is the best solution to secure a REST service provider (assume a java servlet running on google appengine) by allowing requests only from iOS or Android device from a specific app?

Assume I have a servlet running on google appengine that does some processing and responds to a GET request with some JSON data. And I want to restrict this access to my app that runs on Android and iOS.

My current solutions are:

  1. Use if(tokenValue ==
    request.getHeader(tokenKey))
    on the
    appengine servlet. And
    response.addHeader(tokenKey,
    tokenValue)
    on the mobile apps'
    code. So basically only my app would
    know the token key.
  2. Use HTTP(s) for the above solution, appengine supports this
  3. Use oAuth - but I need to have the user sign-on to some oAuth provider from the app, which complicates the app

Suggest other useful approaches to tackle this problem. Assume this servlet only serves GET requests and maybe use Restlet or Jackson

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

神经大条 2024-11-17 06:47:06

如果安全性对您来说很重要,那么只有 3 个才是合适的解决方案。这是因为使用该应用程序的任何人都可以拦截流量并仅针对您的 Web 服务重放这些值。 SSL 提供了一些保护,但优秀的攻击者可以在控制设备的情况下找出如何捕获数据的方法。使用 OAuth,攻击者造成的损害仅限于单个用户(只要他们不是应用程序管理员)。

Only 3 would be an appropriate solution if security is important to you. This is because anyone using the application can intercept the traffic and just replay the values against your web service. SSL offers some protection but a good attacker can work out how to capture data if they control the device. With OAuth the damage done by an attacker is limited to a single user (as long as they are not an app admin).

拥抱我好吗 2024-11-17 06:47:06

使用客户端 SSL 证书怎么样?我还没有尝试过这个,但我正在考虑。这是描述该方法的页面,其中包含一些示例代码:
http://blog.crazybob.org/2010/02/android -trusting-ssl-certificates.html

How about using a client SSL certificate? I haven't tried this, but I'm considering it. Here's a page that describes the approach, with some sample code:
http://blog.crazybob.org/2010/02/android-trusting-ssl-certificates.html

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文