【问题标题】:GoogleAppEngine Java WebService securityGoogle App Engine Java 网络服务安全性
【发布时间】:2010-11-19 15:39:10
【问题描述】:

我正在使用 Java 开发小游戏(使用 JApplet),我想实现高分和成就。

我没有专用服务器,所以我决定使用 GoogleAppEngine 来存储玩家数据以及生成高分和成就。我已经了解了如何在 GoogleAppEngine 上创建 WebServices,但是我有一个关于安全性的问题...

我不希望未经授权的人调用我的 WS...我可以实施什么样的安全措施来防止其他人使用此 WS,只有经过授权的客户端(即我的 Applet)可以在那里发布。

我的 Applet 可能会托管在我的个人网页上,而 WS 将在 GoogleAppEngine 上运行。

提前致谢, 塞尔希。

【问题讨论】:

    标签: java web-services security google-app-engine


    【解决方案1】:

    因为人们不会直接访问您的 GAE 应用程序,所以 google 登录和用户服务可能不是很有效......所以您可能希望查看更传统的安全性。

    有一种方法是使用小程序中的私钥对所有请求进行签名,并使用 GAE 上的公钥对其进行检查。这种方式的问题是您必须将私钥保存在小程序上,(我猜)它可能会被逆向工程和窃取。

    您还可以探索在小程序上使用跨域安全限制...让小程序回传到它来自的服务器,并让该服务器通过签名请求与 GAE 通信。

    您还可以考虑使用基于 HTTP_REFERER 的安全性 - 仅接受来自您的主机域的请求。

    【讨论】:

    • 好的,谢谢你的建议。您认为将密钥硬编码到程序中然后在每次发布后更改它是一种好习惯吗?
    • 如果你设法将它安全地硬编码到程序中,(以一种不会被盗的方式)那么你根本不需要改变它......如果我可以很容易地被盗,那么无论如何都没有意义:(
    • @Serhiy 这不是一个好习惯,但这是实现您所要求的唯一方法。不过,您不需要像 Sudhir 建议的那样使用公钥加密 - HMAC 就可以了。
    • 是的,HMAC 对这个应该绰绰有余了......无论如何,它可能不是最高机密信息。或使用 HMAC 在 SSL 下发布。
    猜你喜欢
    • 2011-02-15
    • 2017-11-12
    • 2013-10-31
    • 1970-01-01
    • 1970-01-01
    • 2016-03-09
    • 2020-02-23
    • 2011-02-01
    • 2012-10-11
    相关资源
    最近更新 更多