在Railo中,如何删除cookie?

时间:2015-02-26 21:51:29

标签: session cookies coldfusion railo

我正在使用Railo - CFML,似乎它没有使用application.cfc / .cfm,因为我已经删除了文件夹中的那些并且它的工作方式相同。话虽如此。

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

我已经实际删除了cookie并强制进行CFID更新。但是,这是我唯一能够获得CFID更改的时间。我更多地关注cookie并使用我的Web开发人员工具包,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 string GA ###########
cfid字符串(随机字母和数字)
cftoken string 50

我使用该代码后得到:
范围
_ga string 0
cfid string 0
cftoken string 50

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

然而,在我运行这个并查看我的网站的cookie之后,我仍然看到CFID的到期时间为2045年。

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:0)

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