代码之家  ›  专栏  ›  技术社区  ›  Chris Lercher

含有未知内容的图像:对浏览器来说危险吗?

  •  3
  • Chris Lercher  · 技术社区  · 14 年前

    假设我允许用户链接到他们喜欢的任何图像。将检查链接的语法正确性、转义等,然后将其插入 <img src="..."/> 标签。

    (让我们忽略CSRF攻击-我只允许具有典型图像文件后缀的URL就足够了。)

    5 回复  |  直到 14 年前
        1
  •  3
  •   Community Navdeep Singh    9 年前

    图像文件中的安全隐患时有发生。举个例子: https://web.archive.org/web/1/http://articles.techrepublic%2ecom%2ecom/5100-22_11-5388621.html?tag=nl.e019 . 这是一篇老文章,显然这些东西已经流传了一段时间了。

        2
  •  1
  •   Sjoerd    14 年前

    有一个 JPEG buffer overrun 不久前。另外,你必须考虑 images who actually contain code ,这样就不会执行代码。

        3
  •  1
  •   Guillaume    14 年前

    是的,这可能是个问题。有很多已知的漏洞利用浏览器或操作系统的图像渲染代码中的漏洞进行攻击。包括远程执行漏洞。它可能不是最容易利用的缺陷,但它确实是一个问题。

    http://www.securityfocus.com/bid/14282/discuss (但您可以找到大量相同类型的其他漏洞)。

        4
  •  1
  •   Chris Lercher    14 年前

    因此,处理不受信任的数据时可能会出现缓冲区溢出。此外,如果您将不受信任的数据以URL的形式插入到页面中,则存在XSS缺陷的风险。不过,我想您应该想知道为什么浏览器会将其标记为问题:

    • 我相信在这种情况下仍然会发送推荐人信息。即使你从来没有也不会在会话中使用URL重写,你仍然会暴露以前是机密的信息。 是的,我刚刚做了一个快速测试-浏览器(FF3.5)发送Referer头。

    • 您不能确定返回的图像数据是否具有误导性。例如,按钮上的文本错误。或者在更大的图像中,比如说欺骗指令。

    • 图像大小可能会改变布局。图像加载甚至可以延迟到关键时刻移动页面。 克里斯:说得好!我应该总是设置宽度和高度(可以由服务器确定时,用户发布的图像-将工作,只要图像不改变。。。更好的主意?)

    • 图像可以用于类似AJAX的功能。 克里斯:请详述这一点-这是怎么回事?

    • 克里斯:当网站使用HTTPS时,这绝对是一个重要的问题。

        5
  •  0
  •   Fidi    14 年前

    更新:证明错误!

    <img src="http://example.com/somepic.jpg alt="" />
    

    在的服务器上 http://example.com 有一个.htaccess文件说:

    RewriteRule ^somepic\.jpg$ evilscript.php