Safari在本地比在格式错误的HTML远程更宽容。为什么?

时间:2011-10-03 16:01:34

标签: security safari

我今天遇到了一个奇怪的问题。我们有一个网页,通过CSS隐藏body,然后有一些JavaScript将body设置为display: block以显示它。 (这是我们需要添加的一些iFrame破坏逻辑的一部分)。

我们在一个页面上遇到了问题,但仅限于Safari。在查看事物时,我发现罪魁祸首是调用包含自己的body标记的包含文件,因此我们最终得到格式错误的HTML,其中嵌套了body标记现有的body代码。

由于JS正在寻找第一个body标记,我们实际想要显示的内容从未显示过,因为它是用第二个body标记包装的。

我认为Firefox只是对HTML的宽容并忽略了第二个body标记。当我们查看服务器上的页面时,Safari没有这样做。

但是,如果我抓取文件并在本地运行,Safari会告诉我:

  

遇到额外的<body>。将属性迁移回原始<body>元素并忽略标记。

我很好奇为什么Safari可能会采用这种“政策”来忽略本地错误的HTML而不是服务器。如果重要,那就是我们正在点击的https网站。也许Safari是明智的,并试图避免任何潜在的安全问题,允许坏HTML?

0 个答案:

没有答案