【问题标题】:Prevent Classic ASP from encoding special characters in cookies防止 Classic ASP 对 cookie 中的特殊字符进行编码
【发布时间】:2015-04-21 17:51:37
【问题描述】:

作为权宜之计,我们正在使用 CloudFlare 来处理一些仍然运行经典 ASP 的旧网站的移动重定向。为了绕过我们没有移动版本的页面的移动重定向,CloudFlare 要求我们设置以下 cookie:

__cf_mob_redir

这里的问题是 Classic ASP 正在把它变成这样:

%5F%5Fcf%5Fmob%5Fredir

如果我们控制 cookie 的读取无关紧要,但我们没有,所以这是个问题。

我的问题是:如何在经典 ASP 中设置包含下划线的 cookie 值?

【问题讨论】:

  • 这看起来像是 URL 编码的。您如何发送 cookie 的值 - 是通过查询字符串。无论如何,这是一个指向 asp URL 解码函数的链接 - aspnut.com/reference/encoding.asp
  • 如果我们是读取 cookie 的人,那会有所帮助。问题不在于读取 cookie,而是设置 cookie。我们必须能够在没有字符编码的情况下设置 cookie。
  • 你需要展示一些代码。

标签: cookies asp-classic


【解决方案1】:

编辑

这条纯 ASP 专用线对我有用。

Response.AddHeader "Set-Cookie", "__cf_mob_redir=__cf_mob_redir; HttpOnly"

忽略之前的回答。

【讨论】:

  • 感谢您的努力,但这需要先返回页面,然后才能设置 cookie 并发送标头响应,在本例中为 301/302 重定向。
  • @Greg-J 你不是很清楚。如果您想获得正确的帮助,请发布一些代码,这样人们就不必再猜测了。
  • 我没有办法更清楚了。我需要在未使用 Classic ASP 编码的名称中设置一个带有下划线的 cookie。您的解决方案使用的 JavaScript 恰好是使用 ASP 写入浏览器窗口的。
  • @Greg-J 我编辑了我的答案,给出了一个我个人尝试过的解决方案,并且在仅使用经典 ASP 的生产服务器上运行良好,可以让您在不返回页面的情况下发送标头响应,与您在评论中指定的完全一样。现在让我们如果不起作用,因为这种情况下的问题在其他地方。
  • 你是个天才。谢谢!
【解决方案2】:

不确定这是否有帮助,但这里有一个解决方案,应该使用经典 ASP(VB 脚本)中的 Javascript 设置 cookie。

response.write "<script type=""text/javascript"">"
response.write "set_cookie('cookie_name', " & cookie_value & ");"
response.write "</script>"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-02
    • 1970-01-01
    相关资源
    最近更新 更多