【发布时间】:2018-11-06 03:13:08
【问题描述】:
我有一个图像和视频共享网站,我认为这不安全。因为任何人都可以上传 shell 或恶意软件,而不是图像和视频。所以我想知道 YouTube 或 Facebook 是如何防止他们受到这个漏洞的影响的。请告诉我任何人。
【问题讨论】:
标签: php shell web-services malware-detection
我有一个图像和视频共享网站,我认为这不安全。因为任何人都可以上传 shell 或恶意软件,而不是图像和视频。所以我想知道 YouTube 或 Facebook 是如何防止他们受到这个漏洞的影响的。请告诉我任何人。
【问题讨论】:
标签: php shell web-services malware-detection
您无法阻止它们被上传。
您必须处理上传的内容,并根据您获得的内容和来源来决定是否保留。
执行此操作的一种快速方法可能是重写或重新复用上传的照片和视频。因此,如果您(比如说)调整图像的大小(可能制作缩略图),并且调整大小失败,那么它可能不是图像。分析上传 - 它甚至可以像图像一样被解码吗?视频也是如此 - 如果无法转换(或至少无法读取),则不允许。
我喜欢在白名单系统上工作。验证您接受的内容是否符合某些标准。假设您只想接受 JPEG 图像。打开上传的文件,并检查 JPEG JFIF 标准标头。如果它不存在 - 它不是 JPEG,请丢弃它。然后检查图像大小字段,如果它们不存在,则将其丢弃。下一个检查...等。只有在您能确定它是什么的情况下才接受它。
还有其他考虑因素 - 如果图片是一张完全有效的可爱小猫照片 - 但分辨率为千兆像素。您的验证软件需要足够聪明才能尝试解压缩。
一旦您确认上传的是实际图片(或视频),那么您可能需要规范图片/视频的内容。这要困难得多。有些图像在某些司法管辖区是非法的,但在其他司法管辖区却完全合法。您不想分享非法图片。
如果您连续 3 次上传失败,也许您可以将该 IP 地址屏蔽几个小时。
【讨论】: