2010-09-09 54 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保護,您需要爲請求改變某些內容(而不是隻讀)來實現它。