[1700] New Bug

Title Text:There’s also a unicode-handling bug in the URL request library, and we’re storing the passwords unsalted … so if we salt them with emoji, we can close three issues at once!<

Origin:https://xkcd.com/1700/

https://www.explainxkcd.com/wiki/index.php/1700:_New_Bug

Cueball询问一个非小组角色是否可以查看他的错误报告。这个人问是否是“正常的”而不是“可怕的”,这证明整个项目“无法修复,应该被烧毁”。这意味着过去曾有过“恐怖”变种的报道。

Cueball承诺它是正常的,但事实证明,当用户的密码是可解析的URL时服务器崩溃,这意味着服务器在某种程度上试图解密密码,就像它们是URL一样。可解析的URL是在语法上正确的URL,并且是指因特网上的可查找和可访问的资源(即,在解析时不返回404错误或等同物)。因此,可解析的URL是完全限定的域名或指向有效服务器的有效IP地址,并且可以选择指定该服务器上存在的资源。通常情况下,系统没有理由将密码视为URL。

此外,Cueball明确指出服务器崩溃,而不是他的应用程序。虽然这可能是Cueball或Randall滥用术语的一个例子,但考虑到Cueball的历史(例如导致1084中最基本的控制台命令失败:服务器问题或1586中出现的其他技术问题:键盘问题)他的选择术语可能是准确的。在Web服务的上下文中,服务器指的是计算机本身或响应Web请求并执行用户(即Cueball)应用程序的程序。 Cueball将负责构建应用程序。这种区别的重要性在于,典型的系统在许多级别都有安全防护装置,以防止行为不当的应用程序崩溃而不是自身崩溃。因此,对于他的应用程序崩溃服务器(计算机本身或托管其应用程序的服务器软件)将要求他的应用程序以远远超出常规的方式运行,这在以前的漫画中就是Cueball的情况。或者,项目可能包含自己的服务器软件而没有安全措施。在任何一种情况下,显然Cueball的问题远非正常,因此非小组成员放弃并决定将项目燃烧到地面是唯一的解决方案,告诉Cueball我会得到更轻的液体。

在标题文本中提到了Cueball程序的另外两个问题,以及可能同时解决所有三个问题的可能解决方案。第二个问题是URL请求库中的unicode处理错误,第三个问题是密码是未加保留的。建议的解决方案是使用表情符号(unicode,多字节字符)对密码进行加密,声称可以同时解决所有三个问题。 Salting密码意味着在密码加密并存储在数据库中之前,会将随机字符添加到密码中。通过确保具有相同密码的用户不具有相同的密码哈希,Salting可在数据库受损时提高安全性。这使得一些可用于破解哈希数据库的攻击(例如彩虹表)实际上是不可能的。

使用表情符号密码密码可能会以不同方式“修复”这些错误。首先,表情符号和其他unicode字符在URL中不是有效字符。因此,salted-password将不再是可解析的URL。这可能会绕过(但实际上没有修复)导致服务器崩溃的错误。此外,密码现在将被加密,从而提高安全性。没有明显的方法可以实际修复URL请求库中的unicode处理错误。考虑到Cueball对这类问题的一般处理方法,最好的解释可能是他没有“修复”这个错误而是它不再是一个错误,因为他依靠它的行为来帮助修复这些其他问题,即经典这不是一个错误,这是一个功能。

标题文本显示他对问题的一般处理方法不是实际修复错误,而是解决它们,甚至依赖它们来处理其他行为。这种软件开发方法会产生可怕的代码,这可能是Cueball首先陷入这种麻烦的原因。因此,标题文本显示他仍然没有从他的错误中吸取教训,进一步支持将整个事情烧掉的建议。

鉴于此漫画在1695年之后只出现了五部漫画:代码质量2,似乎可能是小组成员是马尾辫,并且可以在这两部漫画中的第一部看到,1513:代码质量,肇事者确实是Cueball。在第一个的标题文本中,提到了使用变量名的表情符号。从那以后,表情符号就成了xkcd上反复出现的主题。在1349年:不应该是硬Cueball也编程并发现它很困难,虽然他认为这应该很容易。一个小组成员建议用一个喷灯烧掉电脑,就像这个小组的人建议用较轻的液体将整个项目(包括电脑)烧到地上一样。在下一部漫画中,有多个故事情节1350:Lorenz,一个故事情节导致计算机被吹火炬烧毁。

Leave a Reply

Your email address will not be published.

Categories