我已经保护了JSESSIONID,并使其成为HttpOnly。现在问题来了,我无法从不安全的页面(http协议)登录我的应用程序。是否有任何方法从安全页面(https)移动到不安全页面(http),反之亦然,如果JSEESIONID是安全的和HttpOnly。
是否有任何方法从安全页面(https)移动到不安全页面(http),反之亦然,如果JSEESIONID是
secure
没有一个饼干。secure
的全部意义在于阻止 cookie以透明的方式发送到HTTP页面,窃听者可以窃取它并使用它访问HTTPS页面。
要有一个系统,其中HTTP cookie的妥协不会破坏HTTPS cookie,你必须有两个独立的会话cookie具有不同的名称和值。例如:一个http_session
cookie,没有secure
,只有HTTP版本的网站读取;一个https_session
cookie,有secure
,只有HTTPS版本的网站读取。登录过程必须设置这两个cookie,并且必须修改会话系统以将两个会话id绑定到同一个会话存储包。
我无法从不安全的页面登录我的应用程序
必须不允许从HTTP页面登录。即使表单提交是安全地发送到HTTPS地址,最终用户也无法知道情况是否如此,因此中间人攻击者可以很容易地篡改登录表单,使其在HTTPS连接建立之前泄露密码。HTTP登录表单是典型的安全错误。
一般来说,在不影响安全性和可靠性的情况下,在站点内的HTTP和HTTPS之间进行交换是非常困难的。这样做很少值得。如果你有一个HTTPS地址,你最好只通过这个地址提供服务。