登录验证后将SSL重定向到非SSL

Jad*_*ore 1 security ssl cakephp cakephp-2.0

我有一个Cakephp 2+站点需要某些操作来要求SSL连接(即登录,密码重置等),但我不要求整个站点是安全的.在实现这一点时,我发现在SSL和非SSL页面之间移动时没有保存Session.我在堆栈/sf/answers/844766961/上发现了这个问题解决了我的问题,但我想知道成本是多少.

上述问题的答案需要在lib/Cake/Model/Datasource /中注释掉一行,如下所示:

if (!isset($sessionConfig['ini']['session.cookie_secure']) && env('HTTPS')){
   // $sessionConfig['ini']['session.cookie_secure'] = 1; // <-- Commented Out
}
Run Code Online (Sandbox Code Playgroud)

这样做有什么安全后果吗?另外,有没有办法在不影响蛋糕核心文件的情况下执行此操作,因为这通常不受欢迎?

提前致谢.

Cel*_*ada 5

您将通过SSL对用户进行身份验证,以便MITM无法拦截身份验证,但之后您希望通过明文HTTP发送会话cookie,以便MITM有机会将其提取并自行使用?

鉴于此,使用SSL有什么意义呢?

(是的,我知道你的会话cookie过期,所以得到其中一个不如获得实际凭据那么好,但这听起来像是一个安全方面的可怕想法.)


Law*_*nti 5

首先,修改核心文件是个坏主意,您应该在配置中设置'session.cookie_secure' .

会话的目的是在服务器上存储关键信息,并通过会话密钥将该信息与客户端相关联.会话密钥通常存储在cookie中,并随每个请求发送到服务器.使用安全cookie可防止会话密钥传输到非SSL页面; 这就是为什么你看不到会话数据的原因.

关闭安全cookie允许将会话密钥发送到非SSL页面,但是,它以纯文本形式发送,因此您将容易受到会话劫持的影响.根据您的行为,这可能是也可能不是什么大不了的事.无论如何,通过使用SSL进行登录,密码重置等...您将保护用户实际输入的信息(即用户名,密码等).