我管理的网站适用于拥有网络的组织,在任何给定的15分钟内,数百名用户都可以访问该网站。当用户打开浏览器时,将显示组织的主页。这个主页上有几张图片。为了尝试节省带宽到远程Web服务器(完全不隶属于本地网络),索引文件检查请求者的IP地址,如果它来自网络,它会显示修改后的网页图像从网络上的本地共享驱动器中提取。
基本上,代码是这样的:
<image src="file:\\\D:/hp/picture.jpg" />
网络管理员告诉我,这是不可接受的,因为它带来了很大的安全风险,必须立即删除该文件夹。
我很确定这不是风险,因为它是从本地网络而不是远程服务器请求文件的浏览器,如果请求来自所有用户的本地网络,则显示图片的唯一方式无论如何都可以访问有问题的驱动器。
我在这里有什么东西吗?这个单一图像标签是否会给网络带来“巨大的安全风险”?
一些背景可以防止出现明显的问题:
先谢谢你的帮助。
答案 0 :(得分:0)
为什么不使用服务共享目录的同一台服务器通过HTTP共享图像,只需使用:
<image src="http://local-server/images/hp/picture.jpg" />
您已经拥有一台服务器,这是使用适当软件的问题。
关于你的另一个观点,可能是危险的。您允许浏览器访问远程网站请求的本地文件。我无法想到我头脑中的任何漏洞,但我宁愿避免这种不寻常的做法。在你确定它是安全的之前你不应该做某事(现在你只是不确定它是不安全的)。
答案 1 :(得分:0)
标签本身是否具有“巨大的安全风险”?当然不是 - 任何网站都可以这样做(正如你所说,IE8“很高兴打开你要求的一切”)。其中存在风险:应该允许任何网站强制客户打开任意网络文件?
从安全角度来看,这个问题很可能不是图像标签本身,而是这个功能需要互联网网站允许强制访问本地资源(通过文件:协议)客户端的安全上下文。即使采用同源策略,这也是有潜在危险的,因此现代浏览器不允许这样做。
从IE9开始,Microsoft不允许从Internet区域中的站点访问file:protocol,并且“strongly discourages”禁用此功能。其他现代浏览器具有类似的功能。
据推测,网络管理员最终需要从IE8升级。默认情况下,升级到较新的浏览器将阻止加载本地访问的图像。因此,组织最终会有一些选择:
选项(1)显然是一个安全问题,因为它需要禁用一个安全设置来阻止非本地网站读取本地内容。选项(2)提出了自己的安全问题,因为较旧的浏览器缺少新浏览器的一些安全功能(如阻止文件:来自Internet区域的协议访问)。选项(3)需要更改管理配置,违反最少访问原则,并且(特别是如果站点缺少服务器验证(SSL))会将组织打开到新的可能具有破坏性的攻击媒介。
留下选项4 - 为此目的开发/部署软件;和选项5 - 阻止显示图像。
在结束时,管理员将有可能从IE8移开强大的安全利益,而且采用的是行为的新的浏览器不支持可能妨碍这种升级的实现,而且可以合理地违背了组织的安全利益