0

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

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

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

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

4

1 回答 1

6

这将是一个漏洞。

任何可以看到会话 cookie 的中间人都可以作为用户发出请求。这几乎和被截获的密码一样糟糕。中间人不能自己建立新的会话,但是一旦用户登录,他就可以做任何用户可以做的事情。


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

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

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

于 2009-06-12T18:03:29.663 回答