Summary

  • IE 5 允许网站给“收藏夹”提供图标。微软 1999 年公告指出,Windows 95 和 98 上的 IE 5 处理恶意构造的图标时有缓冲区问题;补丁已发布,公告称未获客户受损报告。
  • W3C 2005 年的草案主张由网页显式声明图标。现行 HTML 标准仍允许在没有声明时尝试 /favicon.ico;微软 2026 年说明了 Edge 新标签页如何因主机级缓存给某个书签挂上另一页的图标。

1999 年,IE 5 的收藏夹已经能带上网站提供的小图标。看似给书签加一点颜色,浏览器却要读取和处理来自网站的图像文件。微软 5 月 27 日的安全公告指出,特制的错误图标可越过未检查的缓冲区,在 Windows 95 或 98 上的 IE 5 中执行代码。微软发布补丁,并表示没有收到客户受害报告。门牌虽小,进门时照样要过安检。

接下来争的不是图像安全,而是谁有权指定门牌的位置。浏览器若习惯去站点根目录找图标,根目录就被默认划出一个格子。W3C 2005 年的 favicon 指南草案对此有异议:网址空间应由站点管理者安排,而在共享域名下写网页的人,往往根本进不了根目录。要给自己的页面挂图,却被要求先拿整栋楼的大门钥匙。

草案更喜欢网页自己写 link rel="icon",明确指出图像地址。那份文本讨论的根路径是 /favicon;今天的 HTML 标准写的是 /favicon.ico。两份记录的用字不能混成一句,核心矛盾却清楚:由页面声明,还是由浏览器按约定猜测?前者把选择权交给页面作者;后者在没有声明时仍能迅速找到一个候选。

现行标准把两种尺度并排摆着:图标可以代表“一页或一个网站”。网页可声明多枚,浏览器依据类型、媒体条件和尺寸挑选。HTTP(S) 页面没有 icon 链接时,浏览器可以再试根目录的 /favicon.ico。连旧式 shortcut icon 也因历史原因被保留。显式声明和老办法一起活了下来,而“页”和“站”的界线仍会在具体产品里重新出现。

微软 2026 年 3 月更新的 Edge 说明给了个十分形象的例子。新标签页查找已保存网站的图标,先看精确网址的缓存,再看同一主机的缓存,然后是图标服务,最后才用站名首字母。若同一主机放着 HTML 首页和 PDF,精确项缺失时,PDF 的图标可能被拿来装点首页。书签地址没跑;跑错的是门牌。

从 1999 年的解析漏洞,到 2026 年的缓存认错,故障形式完全不同。共同点是浏览器把一张小图交给了读者,读者据此辨认去处。网页指定的图、主机共享的图、邻居留下的图,各自有不同来历。只有把来历守住,这枚小徽章才配得上它借来的信任。