登录页面使用SSL,未加密的页面看不到加密的会话cookie(Grails,Acegi)

Ste*_*dey 0 cookies ssl session grails spring-security

设置:Grails 1.1,Acegi/Spring Security插件

我希望用户通过SSL登录,所以我的channelConfig.secure []列表中有'/ login/**',但几乎其他所有内容都在channelConfig.insecure []中./ login的每个请求都会重定向到https://,并且每个其他请求都会重定向到http://.

我的问题是登录过程将cookie设置为"仅通过加密连接发送",因此当登录页面重定向到/ home时,主页不会看到cookie并将我重定向回登录页面.当我尝试再次登录时,登录页面会看到cookie并重定向我...等等.

我通过这个页面搜索了SecurityConfig以查看是否有一个选项允许通过未加密的HTTP读取通过SSL创建的cookie,但我什么也没找到.我可以设置一些选项,使我的登录cookie可用于未加密的控制器吗?

eri*_*son 6

这将是一个漏洞.

任何可以看到会话cookie的中间人都能够以用户身份发出请求.这几乎与被拦截的密码一样糟糕.中间人无法自己建立新的会话,但是一旦用户登录,他就可以做任何用户可以做的事情.


使用SSL不仅仅是在登录时隐藏用户名和密码.

首先,它为客户端和服务器之间的所有消息提供机密性.将密码识别为敏感数据很容易,但是哪些应用程序功能也使用敏感数据可能并不明显.保护任何用户输入和动态生成的内容比尝试仔细评估应用程序中使用的每个数据字段的隐私问题更安全,更容易.静态内容(如图像,帮助页面等)可能不那么敏感,但通过分析对该内容的请求,攻击者可能会很清楚用户在网站上做了什么.

其次,SSL为每个请求提供完整性.这可以防止攻击者修改或附加他们自己的恶意输入到用户请求,或修改服务器产生的结果.