我在我的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