首先,我不是在询问使用服务器端语言上传本身的过程。 我只想知道在我的网站上使用上传的图像作为 CSS 背景时应该考虑哪些安全因素。
该功能与 Twitter 完全相同,允许用户使用自己的背景图片。
例如,将图像放在服务器上并开始使用是否安全?他们可以在使用该背景的页面上注入(inject)某种代码吗? 我通常将图像调整为较小的尺寸,这是否足以删除其中包含的不需要的“元”数据?
最佳答案
多年来,浏览器存在大量由特制恶意图像文件引发的缓冲区溢出漏洞。
我不知道当前版本的浏览器是否存在任何已知的这种性质的缺陷,但很多人会使用没有任何安全补丁的旧版本,当然新缺陷时不时会被发现。
这很难解决(而且几乎不可能 100% 安全),但您可以进行一些基本检查,以确保该文件实际上是上传时所声明类型的图像。调整图像大小几乎肯定会破坏其中嵌入的任何恶意代码。
还有一个更明显的风险,即图像可能会显示您不希望与您的网站相关联的不合适的 Material 。这只能通过在允许使用图像之前手动审查图像来解决。
所以,是的,存在风险。但是,如果图像是由上传它们的人查看的(即作为个性化功能,按照您在 Twitter 上描述的方式)而不是由任何人查看,则风险要低得多。显然,一个人不太可能想要入侵自己的计算机,因此恶意图像问题会减少,如果有人想在您的网站上放置一个令人讨厌的图像,但只有他们才能看到它......好吧,他们显然知道它是什么,否则他们不会上传它。
关于css - 用户上传背景图片的安全考虑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6346419/