代码之家  ›  专栏  ›  技术社区  ›  McGuireV10

无法破解的cookie(asp3、php5、iis5、ff3.5、ie8)

  •  2
  • McGuireV10  · 技术社区  · 15 年前

    我有一个用PHP生成cookie的系统,然后需要从经典的ASP中删除它。这是一个快速而肮脏的dev box,只是一个运行iis5、php5和asp3的备用xp机器。我使用hosts文件创建了一个假域名(www.localtest.com),因为该过程的其他部分无法与localhost一起工作。

    php文件位于站点根目录之外的子目录中,但cookie域为.localtest.com,路径为根目录(/)。cookie名称是“authkey”,值是32字节的哈希代码。

    ASP文件位于站点根目录中(目前)。在php创建cookie之后,它就可以很好地读取cookie,但是不管我怎么尝试,我都无法从asp中更改cookie——它不会更改值,更不用说更改到期时间了。firefox 3.5和ie 8都忽略了我所做的每一次尝试(当他们最终达成一致时,就是这样)。

    我尝试过很多种变体——只设置过期(以各种格式设置各种值)、设置除过期之外的所有参数以精确匹配cookie、使用response.addheader发出具有所有这些变体的set cookie头、将值设置为false,最后只尝试更改valuE到其他一些字符串,但失败了。

    怎么回事?这是使用“假”域运行的ASP副作用吗?我已经用这种方法开发了10多年,没有看到ASP在主机指定的域上有任何问题,尽管我从来没有机会删除cookie(很奇怪)。

    我特别惊讶于我甚至不能设定这个值。

    2 回复  |  直到 6 年前
        1
  •  2
  •   RichieHindle    15 年前

    使用 Fiddler 或者类似于查看实际的HTTP流量——只要发送正确的HTTP头,服务器技术就不重要。可能它们不是,但除非您查看HTTP流,否则您将无法确定。

    (通常我建议 Wireshark ,但当客户机和服务器在同一台计算机上时,这不起作用。)

        2
  •  0
  •   McGuireV10    15 年前

    奇怪的。

    问题是域名中的前导点。因为我的网站不使用子域,所以我并不真正需要它——但很明显,如果存在这个点,浏览器就不会删除或更改cookie。

    我想知道这是否是一种新的行为,因为我知道很多系统都依赖它来生成子域中立的cookie(如phpbb)。

    另外,为了删除cookie,我必须指定所有内容——域、路径和日期,但我认为这实际上是基于RFC的,所以我不太担心它。