我在我的glassfish服務器上使用gwt,並試圖使我的一些RPC調用通過cookie進行身份驗證。這可能嗎?有沒有任何例子如何編碼?GWT RPC Cookie身份驗證
回答
僅取決於Cookie進行身份驗證會使您的網站/服務容易受到跨站點請求僞造/ XSRF/CSRF攻擊 - 請閱讀有關Security for GWT Applications的更多信息。
最好的方法是仔細檢查從cookie獲取的值以及通過其他方式傳輸到服務器的值 - 作爲請求(頭部,自定義字段等)的一部分。
除此之外,還有很多關於這個主題的教程 - 只是搜索Java(servlet)認證 - 它不一定是GWT特定的。 Google Web Toolkit Group也有許多threadsaboutthesubject。
我假設您使用GWT的RPC servlet來處理客戶端發出的請求。
我想到的一個選擇是在請求到達GWT的servlet之前編寫和配置一個可以檢查cookie的ServletFilter。
您可能會重新考慮使用cookie,因爲它是一個潛在的安全漏洞。 爲什麼不把你的通信到HTTPS?
你能不能只使用標準的「會話」範圍,即
request.getSession()
我在GWT應用程序使用的模式是有一個單獨的「老式」登錄形式,建立了會議。然後GWT應用程序的主機頁面在他們成功登錄之後顯示。
如果必需的值不在會話中,那麼用戶沒有登錄。您的服務應該返回一個異常,可能是,指示GWT應用程序重定向到登錄頁面,或顯示錯誤。
每個RPC負載不發送自定義會話標識可能會使RPC服務對XSRF/CSRF攻擊開放 – 2011-12-07 01:14:49
- 1. GWT身份驗證
- 2. 身份驗證Cookie
- 3. RPC身份驗證錯誤
- 4. RPC相互身份驗證
- 5. 身份是身份驗證Cookie
- 6. Asp .NET身份Cookie身份驗證
- 7. Gwt-gdata身份驗證
- 8. GWT和身份驗證
- 9. Cookie和身份驗證-ASP.net
- 10. DownloadManager與Cookie身份驗證
- 11. 重置身份驗證Cookie
- 12. 身份驗證Cookie到期
- 13. ASP.NET MVC身份驗證Cookie
- 14. HybridAuth身份驗證Cookie
- 15. Angular 2 cookie身份驗證
- 16. OWIN Cookie身份驗證
- 17. ASP.NET身份驗證Cookie
- 18. 兩個身份驗證cookie
- 19. 表單身份驗證和身份驗證票據Cookie域
- 20. Ajax:HTTP基本身份驗證和身份驗證Cookie
- 21. 使用Owin OpenId身份驗證混合Owin Asp.Net身份Cookie身份驗證
- 22. 使用CORS和Cookie身份驗證的ASP.NET身份/ OData缺少身份驗證Cookie
- 23. GWT身份驗證的用戶會話
- 24. django用戶身份驗證+ gwt
- 25. GWT RequestFactory身份驗證功能
- 26. Google Cloud端點gwt Oauth2身份驗證
- 27. ASP.net表單身份驗證Cookie丟失
- 28. PowerShell使用Cookie進行身份驗證
- 29. Python身份驗證Cookie和Django會話
- 30. iOS的UIwebView身份驗證Cookie
HTTPS不會阻止XSRF攻擊AFAIK,因此您「僅」受到中間人攻擊的保護。而且它有一個額外的怪癖,使得大多數瀏覽器不會**緩存HTTPS請求的內容。此外,與GWT和所有的AJAX的東西,你要麼保持網站HTTP或HTTPS - 混合起來可能會導致一些可怕的警告在某些瀏覽器 - 不是你想展示給你的用戶:) – 2010-02-17 02:06:41
真的......但我正在考慮把整個網站置於HTTPS之下而不是混合它。 – Drejc 2010-02-17 09:36:48
對,然後用戶每次使用該站點時都必須下載整個應用程序(JS文件),可能會抱怨它加載的速度有多慢等。當然,如果這是銀行網站或類似的東西,安全性是優先的數字1和整個網站應該是https。儘管如此,我關於僅cookie認證的觀點仍然存在。 – 2010-02-17 23:32:57