在 IT 世界,你永远也想不到哪里会出现怎样诡异的 bug。比如今年 3 月份,一位苹果用户名为 Rachel True 的用户称无法登录其 iCloud 帐户,而「罪魁祸首」竟然是姓名。在程序代码中,「true」和「false」通常被用来判断真假,导致她无法登录的原因是苹果 iCloud 系统自动忽略了她名字中的「true」。
最近,另一个类似的 bug 出现了。不过这次问题出在 Safari 浏览器上。
GitHub 用户 quarterdeck 在使用 Safari 浏览器时发现了一个奇怪的现象:当页面 p 标签含有 Welcome Back 字样时,将触发用户名、密码自动填充。
经过反复试验和思考,ta 认为该现象出现的原因是:Safari 假设所有带有「Welcome Back」的页面为登录页面,进而触发用户名密码自动填充。
如何解决呢?ta 发现只要在 Welcome 和 Back 两个单词之间添加不间断空格,就可阻止 Safari 浏览器的这一行为。
welcome back
另一位用户 laurensgroeneveld 复现了这一 bug,并找到了另一种解决方案:在 p 标签中添加 style="display: none;。
还有人发现,「Sign In」也有同样的效果:
对于这一现象,网友们展开了激烈讨论。
一切都是浏览器的锅?
浏览器提供「记住密码」的功能,以在用户下次使用时进行自动填充。很多时候这一功能确实提供了便利,但它还牵扯到许多问题,如安全性、误触发等。
对于上文介绍的问题,有网友称,这并非 Safari 独有的问题,ta 用过的所有密码管理工具都用某种启发式方法决定某个字段是否需要自动填充。
还有网友表示,是否显示自动填充的决定权应该是用户,而不是网站。
这个问题还引起了对几个流行浏览器的大讨论:
看起来 Safari 是「当代」IE。
不,Chrome 才是新的 IE。
两者都是新的 IE。一个推送新特性时不顾生态系统的其他部分,另一个拒绝实施标准同时也不顾生态系统的其他部分。因此,我认为两者都是新的 IE,只不过处于不同的阶段。
恐怕 IE 浏览器看到这里,只能含泪说一声「准备退休,勿 cue」……
参考链接: