无法通过ColdFusion在浏览器中禁用HttpOnly标志

问题描述 投票:1回答:1

在我们的应用程序中,我们使用J2EE会话变量进行会话管理。我们最近从ColdFusion 9迁移到ColdFusion2018。迁移后,注销功能不起作用。我们发现的是,在ColdFusion 2018中,由于未在浏览器中将HttpOnly标志设置为true,因此无法从浏览器中清除Cookie JSESSIONID。

我们尝试通过以下方式在浏览器中禁用此HttpOnly标志,

By disabling HttpOnly flag and Global Script Protection in CF admin.
By modifying the jvm.config via CF admin by adding "-Dcoldfusion.sessioncookie.httponly=false".

但是通过这种方式,HttpOnly标志仍然在浏览器中显示为已启用。因此,客户端脚本无法清除cookie JSESSIONID,因此注销功能不起作用。

在CF2018中,有没有办法在浏览器中为Cookie JSESSIONID禁用HttpOnly标志?。

注意:

[在CF9中,对于cookie JSESSIONID,在浏览器中禁用了HttpOnly标志。我们使用CF2018企业版(试用版,尚未到期)。更新CF管理员中的设置后,重新启动CF服务。

coldfusion coldfusion-9 cookie-httponly coldfusion-2018
1个回答
0
投票

您可能必须重构应用程序以解决CF 9无法解决的许多OWASP漏洞。根据您的听众,您应该让一个第三方对您的代码库执行安全渗透测试。

您将需要重构注销过程。您不应该禁用httpOnly Cookie上的jsessionid,这是防止跨站点脚本攻击的预防措施。

https://www.owasp.org/index.php/HttpOnly

根据Microsoft开发人员网络,HttpOnly是Set-Cookie HTTP响应标头中包含的附加标志。使用生成Cookie时的HttpOnly标志有助于降低以下风险客户端脚本访问受保护的cookie(如果使用浏览器支持它。

https://docs.microsoft.com/en-us/previous-versions//ms533046(v=vs.85)?redirectedfrom=MSDN

使用JEE会话ID时,需要将其添加到注销过程的一部分中:

<cfset getPageContext().getSession().invalidate()>

然后重定向到另一个页面,例如您的登录屏幕。这将删除jsessionid Cookie,并实际上使服务器上的JEE会话无效。

© www.soinside.com 2019 - 2024. All rights reserved.