2010-09-09 39 views
6

我想在我的appengine应用程序中实现自定义用户身份验证系统。我不想使用会话。我是这方面的新手,所以我有两个基本问题:通过https对GWT和GAE进行安全认证?

1:只通过https向每个RPC发送用户名和密码是否安全?我需要做些什么才能保证客户端的用户名和密码安全?

2:如何让GWT在发出请求时使用https?

我对安全性不太了解,所以请不要让我有任何“明显”的细节。

谢谢!

+0

http://code.google.com/p/google-web-toolkit-incubator/wiki/LoginSecurityFAQ似乎用“是”和“cookies”回答问题1。仍令人沮丧地难以捉摸的是问题2的答案。 – 2010-09-09 16:39:54

+0

您的实施是如何实施的?您是否有任何问题需要为每个请求发送登录凭据? – 2011-01-26 04:42:57

+0

它已经工作了三个月了! – 2011-01-26 15:05:26

回答

5

使用萤火虫观察过程显示所有RPC都是通过与请求主机页面相同的协议进行的。这似乎需要为同一个站点的原产地规则,所以我会认为我的答案是

1:是的,但它的速度较慢

2:GWT自动使用HTTPS当主机页面请求w/https

2
  1. 通过HTTPS发送用户名和密码是安全的,但没有人会为每个请求执行此操作,因为有一天您可能会忘记/需要通过HTTP发送请求。而且,将密码保存在内存中会吸引XSS黑客。一个未被注意的XSS漏洞会暴露密码。通常,开发人员会将内容中的会话标识或XSRF标记保存在内存中,并随每个请求一起发送。
  2. 请看http://code.google.com/appengine/docs/java/config/webxml.html#Secure_URLs
  3. 不要忘记XSRF保护,您需要为请求改变某些内容(而不是只读)来实现它。