【问题标题】:ColdFusion MX - remove jsessionid from urlColdFusion MX - 从 url 中删除 jsessionid
【发布时间】:2011-04-08 15:51:32
【问题描述】:

我们的 cfmx 应用程序中有一堆“cflocation”标签,这会导致会话标识符被附加到 url。 我们这里主要关心的是从 url 中删除 jsessionid、cfid 和 cftoken 以采取安全措施。 我们尝试了以下方法,但没有一个对我们有用: 1.带有cflocation标签的'addtoken=no' 2. 尝试使用 cfheader 代替 cflocation。

我们如何从 url 中删除会话标识符?

感谢大家的及时回答! 我会在这里尝试回答问题

  • 我尝试像这样用 cfheader 完全替换 cflocation

<cfheader statuscode="302" statustext="Temporarily Moved"/> <cfheader name="Location" value="destinationURL"/>

  • 我们正在使用 cookie 来存储会话信息。我可以看到在用户机器上成功创建了 CFID、CFTOKEN、JSESSIONID cookie

  • Mitrah - 如果我将 'setclientcookie' 值设置为 false,那不是默认为 URL 吗?还是我没看错?

  • 我是否需要以某种方式调整“cfapplication”标签才能使其正常工作

【问题讨论】:

  • 当您说您使用 cfheader 时,您的意思是您正在编写自己的自定义重定向,而根本没有使用 cflocation?
  • 我以为我遇到了同样的问题,但您尝试的两个解决方案都有效。您可能会在其他地方遇到更有趣的错误。

标签: java coldfusion


【解决方案1】:

听起来您没有使用 cookie 来存储会话,但可能正在使用客户端变量。如果您使用客户端变量,那么无论如何 CF 都会自动将会话令牌放入 URL 中。 This doc 解释了原因。

【讨论】:

  • “使用客户端变量存储会话”似乎没有任何意义。你能澄清一下吗?
  • 当然——当你的计算机发送另一个请求时,要在 CF 服务器上跟踪你的会话,CF 必须有办法知道你是谁。通常,开发人员将其设置为将会话令牌存储在浏览器的 cookie 中。但您也可以选择每次发送会话变量。如果您使用客户端变量,则每个请求都必须具有会话令牌,以便 CF 服务器知道哪个会话是您的。
  • @Ben:很抱歉造成混乱。我编辑了我的原始评论以删除导致混淆的短语。
  • 当您说“客户端变量”时,您指的是 CF 客户端范围内的变量吗? r 你是指通过 URL 传递 dtat 吗?
【解决方案2】:

尝试在您的应用程序标签中设置 setclientcookie = "false"。

【讨论】:

    猜你喜欢
    • 2012-07-04
    • 2015-10-25
    • 1970-01-01
    • 2011-12-10
    • 2012-02-29
    • 2018-05-25
    • 2019-08-13
    • 2011-07-13
    相关资源
    最近更新 更多