ChatGPT解决这个技术问题 Extra ChatGPT

什么是“YTowOnt9”?

我们的 (PHP) 框架有时会呈现值为 YTowOnt9 的隐藏输入。我在(巨大的)代码库中的任何地方都找不到该字符串,也无法弄清楚它来自哪里。我决定用谷歌搜索那个特定的字符串,result 让我很惊讶。超过半百万 - 一种随机 - 命中。我还没有找到任何描述价值本身的页面。它在 Stack Overflow 上有 0 次点击。

YTowOnt9 是某种魔术字符串吗?

总是相同的值?如果它是随机的,我会说它可能是 CSRF 令牌或类似的东西。
始终相同的值;这个完全相同的值在 Google 上有 500.000 次点击。
它看起来像是某种东西的盐或令牌。它总是相同的字符串吗?即使您注销并删除 cookie/缓存或使用其他浏览器?
您使用的是什么 PHP 框架?
这是一个自定义框架,请注意这个字符串在 Google 上出现了数十万次这一事实。

P
Peter Mortensen

它似乎是一个 PHP 序列化的空数组,采用 base 64 编码。

$ base64 -D <<< 'YTowOnt9'
a:0:{}
$ php -r 'var_dump(unserialize(base64_decode("YTowOnt9")));'
array(0) {
}

有许多脚本可以序列化数据数组。当数组有数据时,它们变化很大,因此 Base64 编码的 PHP 序列化值也是如此,但当它们为空时,它们都是相同的。它看起来好像很多非常不同的 PHP 脚本都有这个随机字符串。


YTowOnt9 = a:0:{}
@kojiro 你到底是怎么得到这个答案的?您是否只是在想“哦,我将尝试在 base64 中反序列化它,我感觉就是这样!” ?请详细说明 !:)
我盯着它看了一会儿,试着重新排列脑海中的字母。然后我突然意识到奇怪的大写让我想起了base 64。所以我试了一下,很幸运。
@AdrianFrühwirth GNU 的 base64 使用 -d 来表示解码,所以在你的情况下,可能是的。答案的作者很可能在 OS X 上,它使用 -D 进行解码。便携性很难。 :-)
@kojiro,鉴于输出文本始终比输入大 33%,我不确定将 base64 称为“压缩”(甚至不是“非常差的压缩”)是否有意义。