如何在Appengine上验证Google wave小工具查看器?

时间:2009-11-23 09:05:48

标签: java security google-app-engine google-wave

想象一下,我想为Google Waves制作游戏“Rock-paper-scissors”。 我正在考虑将其作为Wave Gadget实现。

这个想法很简单:所有参与者都将他们的决定发送到我的云端 应用程序(它是一个Appengine Java应用程序),我的服务器部分收集 这些数据并没有分享给任何人,直到所有参与者 完成他们的选择。在此之后,选择将共享给所有人 参与者和获胜者已确定。

我可以使用wave.getViewer().getId()来识别服务器上的用户 在gadgets.io.makeRequest期间。我工作得很完美。 但是,如何在服务器端确保传入的请求是 真的来自这个特定的wave用户吗? (我怎么能批准那波 参与者ID在客户端没有被黑客攻击?任何波形容器 允许确定wave参与者ID的签名?)

Google Wave参与者身份验证的最佳做法是什么? 在我的appengine方面?如果可能,请提供示例。

我的实际小工具更复杂但问题如上所述 上方。

4 个答案:

答案 0 :(得分:1)

我会针对想象的未来解决方案进行编码,该解决方案直接融入Wave协议或API,并希望没有人欺骗参与者ID。您也可以联系Wave团队,了解您对该功能的需求,看看是否还有其他人在寻找相同功能。

看起来已经为机器人内置了一些OpenAuth集成: http://wave-robot-java-client.googlecode.com/svn/trunk/doc/index.html

您能够实现机器人而不是小工具吗?或者也许可以使用机器人进行身份验证,并将小工具界面与您自己的身份验证令牌服务器端相连接?

答案 1 :(得分:0)

据我所知,没有“简单”的方法可以做到这一点,因为与小工具的所有通信都直接在客户端和小工具之间进行,除了小工具的XML描述之外没有谷歌干扰。

我能想到的唯一方法就是让您的用户使用Google App Engine的帐户功能“登录”小工具的iframe。这将确保他们确实是他们登录的人。

答案 2 :(得分:0)

  

我如何批准wave的参与者ID在客户端没有被黑客攻击?

用户如何破解他的wave patricipant id? 我认为没有问题,wave.getViewer()。getId()应该是正确的。

答案 3 :(得分:0)

我认为你想要研究制造一个波浪机器人而不是一个GADGET。有区别。

机器人是波浪感知的,小工具不是。

Wave Robot API:http://code.google.com/apis/wave/extensions/robots/