gpt4 book ai didi

cookies - 如何在 ColdFusion 10 中覆盖 CFID/CFTOKEN?

转载 作者:行者123 更新时间:2023-12-01 23:00:27 24 4
gpt4 key购买 nike

为了注销用户,我总是使用以下几行:

<cfset structClear(SESSION)>
<cfcookie name="CFID" value="" expires="NOW">
<cfcookie name="CFTOKEN" value="" expires="NOW">

它会在运行时清除 session 中保存的数据并重置/更新 CFID 和 CFTOKEN。
它在我们的旧服务器 (ColdFusion 8) 上仍然有效,但在我们的新服务器 (ColdFusion 10) 上不再有效。这种尝试在 ColdFusion 10 中失败的原因很简单:每当我尝试覆盖 CFID 或 CFTOKEN(使用 <cfcookie>)时,cookie 被放置在顶级域中,例如:
Cookie set via <cfcookie> on ColdFusion 10:
domain: .myserver.com

而 ColdFusion 将其 session cookie 放在实际(子)域上:
Generated CFID/CFTOKEN by ColdFusion 10:
domain: mywebsite.myserver.com

有趣的是:如果我设置如下:
<cfcookie name="TEST" value="..." expires="NEVER">

cookie 正确设置为:
domain: mywebsite.myserver.com

我可以使用以下方法轻松清除 cookie:
<cfcookie name="TEST" value="" expires="NOW">

我尝试使用域属性,但是:
<cfcookie name="CFID" value="" domain="mywebsite.myserver.com" expires="NOW">

总是最终为:
domain: .mywebsite.myserver.com

(注意前面的点),因此不被识别为同一个 cookie。

另一个奇怪的是,使用:
<cfcookie name="CFID" value="" expires="NOW">

不仅会生成带有错误域的 cookie,而且会在过期时保留而不是删除。

我检查了 ColdFusion 10 机器上 cookie 的服务器设置和属性 Disable updating ColdFusion internal cookies using ColdFusion tags/functions未检查。

谁能帮我解决这个奇怪的案例?

最佳答案

关于<cfcookie>的行为已经有一些深入的讨论。域相关。以下帖子提到解决方法似乎正在使用 <cfheader>使用 cookie:

  • ColdFusion 10 CFCookie not honoring domain attribute
  • why doesn't cfcookie allow setting domain= to a subdomain for CFID/CFTOKEN?
    在发布这个问题之后,Henry 实际上在 Adob​​e 上输入了一个错误:
    https://bugbase.adobe.com/index.cfm?event=bug&id=3593673
    您可以将您的评论/投票添加到错误中。

  • 虽然我相信这些引用资料可以回答您关于 <cfcookie> 的问题您所看到的行为,如果您只关心“过期”用户的 session ,那么 Scott's answer为您提供比手动设置 cookie 更好的方法来使用户的当前 session 无效。

    关于cookies - 如何在 ColdFusion 10 中覆盖 CFID/CFTOKEN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18062660/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com