在 Railo 中,如何删除 cookie?

In Railo, how do I delete a cookie?

我正在使用 Railo - CFML,它似乎没有使用 application.cfc/.cfm,因为我已经从文件夹中删除了它们,但它仍然有效。话虽如此。

我试图在有人退出我的应用程序时强制删除 cookie。强制更改 cookie 中的信息后如何恢复信息。

我已经物理删除了 cookie,它会强制更新 CFID。但是,那是我唯一一次能够更改 CFID。我更深入地研究了 cookie 并使用我的网络开发人员工具包,cookie 设置为 2045 年到期。

我在这里搜索了几个小时,寻找可行的方法,我可以告诉你,到目前为止,他们在我参与过的其他项目上工作,但由于某种原因,我无法让它在当前项目上工作。请注意,我是本网站的第 15 个程序员。

这是我正在使用的一些代码:

<cfcookie
name="CFID"
value="Dead"
expires="NOW"> 
<cfcookie
name="cfid"
value="Dead"
expires="NOW">

<cfset structClear( session ) />

<cfset delete_cookie=StructDelete(cookie,"CFID")>

<cfcookie name="CFID" value="0" expires="Thu, 01-Jan-70 00:00:01 GMT">
<cfoutput>Cookie Deleted: #delete_cookie#<br /></cfoutput>

 <cfset delete_cookie=StructDelete(cookie,"cfid")>
<cfcookie name="cfid" value="0"expires="Thu, 01-Jan-70 00:00:01 GMT">

<cfset delete_cookie_ga=StructDelete(cookie,"_ga")>
<cfcookie name="_ga" value="0"expires="Thu, 01-Jan-70 00:00:01 GMT">
<!--- Redirect back to index page. --->
<!----<cflocation
url="/"
addtoken="false"
/>--->
<cfdump var=#cookie#>

这是我得到的:
在我使用该代码之前。
范围
_ga 字符串 GA###########
cfid 字符串(随机字母和数字)
cftoken 字符串 50

使用该代码后,我得到:
范围
_ga 字符串 0
cfid 字符串 0
cftoken 字符串 50

这是我尝试两种不同的方法来完成工作。

但是,在我 运行 执行此操作并查看我网站的 cookie 之后,我仍然看到 CFID 的有效期为 2045。

经过进一步研究,我发现我的 Railo Server 管理员让会话在 90 天后超时。这已更改,会话将在 20 分钟后过期。因此,如果您使用 railo,请确保您更新的是 Web 管理员,而不仅仅是服务器管理员。学过的知识。感谢大家。也非常感谢 Ben Nadel 帮助解决这个问题!

您的代码可以很好地处理 Railo 上的 cookie 值。代码完成后,Railo 似乎正在执行会话管理任务,并正在设置 cfid cookie。

即使您可以更改 cfid cookie 值,现有会话仍然存在。那些可以使用 url 中的 cfid 查看会话的人仍然可以使用相应的会话,直到它自然超时。要使 Railo 4 或更高版本中的会话无效,您可以使用 SessionInvalidate() function。此函数将更新客户端 cfid,并强制当前会话过期。

在不了解您的应用程序的更多信息的情况下,我不确定使会话无效是否会解决您一直在处理的安全问题。