3

在 Imgur 中,您可以输入图像 URL,几秒钟后,就会出现图像的缩略图。或者在必应搜索中,您可以(或曾经)能够在访问之前在搜索结果中查看网站的缩略图。

我很想为我的网站实现类似的东西,但我无法理解它是如何完成的。此外,没有安全问题吗?我想服务器至少必须下载网站,渲染它并截取屏幕截图。如果它是一个恶意网站,并且您在服务器上下载了恶意内容怎么办?

4

2 回答 2

2

可以使用像PhantomJS这样的无头 Web 浏览器引擎。请参阅他们 wiki上的示例。是的,谨慎的做法是在某种沙箱中运行它,将 URL 队列输入其中,然后从文件系统中获取生成的缩略图。

于 2013-09-18T23:30:00.733 回答
0

虽然我不知道上述任何服务的内部工作原理,但我猜他们会下载/创建图像的本地副本并从中生成缩略图。

Imgur 作为图像托管服务,在生成缩略图或其他任何内容之前,肯定需要图像的副本。图像可以存储在本地或仅存储在内存中,但无论哪种方式,都必须下载。

显示网站屏幕截图的搜索引擎可能具有在内容被编入索引时定期截取可视区域屏幕截图的服务,然后将这些屏幕截图(或衍生产品)与搜索结果一起提供。截屏确实并不危险,所以没有什么可担心的,任何用于加载/解析/索引网站的工具显然都会考虑到安全考虑。

当然,您下载的数据也存在安全问题。图像很容易在其 EXIF 数据中包含可执行代码(例如 PHP),因此您需要小心处理图像的内容和方式。

于 2013-09-18T23:20:21.367 回答