GoogleAppEngine Java Web服务安全性

GoogleAppEngine Java Web服务安全性,java,web-services,security,google-app-engine,Java,Web Services,Security,Google App Engine,我正在用Java开发小游戏(使用JApplet),我想实现高分和成就 我没有专用的服务器,所以我决定使用GoogleAppEngine来存储玩家数据,并在生成高分和成就后使用。我已经发现了如何在GoogleAppEngine上创建Web服务,但我有一个关于安全性的问题 我不想让不受欢迎的人打电话给我的WS。。。我可以实现什么样的安全性来防止其他人使用此WS,只有经过授权的客户端(即我的小程序)才能在那里发布 我的小程序可能会托管在我的个人网页上,WS将在GoogleAppEngine上运行 提前

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

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

我不想让不受欢迎的人打电话给我的WS。。。我可以实现什么样的安全性来防止其他人使用此WS,只有经过授权的客户端(即我的小程序)才能在那里发布

我的小程序可能会托管在我的个人网页上,WS将在GoogleAppEngine上运行

提前感谢,,
Serhiy.

因为人们不会直接点击你的GAE应用程序,谷歌登录和用户服务可能不是很有效。。。所以你可能想看看更传统的安全性

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

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


您还可以考虑使用基于HTTP\U REFERER的安全性—只接受来自主机域的请求。

好的,谢谢您的建议。您认为将密钥硬编码到程序中,然后在每次发布后对其进行更改是一种好做法吗?如果您设法将其安全地硬编码到程序中(以一种不会被盗的方式),那么您根本不需要更改它。。。如果我很容易被偷,那么做也没有意义:(@Serhiy这不是一个好的做法,但这是实现你要求的唯一方法。不过,你不需要像Sudhir建议的那样使用公钥加密-HMAC就可以了。是的,HMAC应该足够了……反正它可能不是绝密信息。或者用HMAC在SSL下发布。