假设您有一个缩略图生成器脚本,它接受URL形式的源图像.有没有办法检测源URL是否"损坏" - 是否不存在或导致非图像文件?
只是暴力使用getimagesize()或其他PHP GD功能不是解决方案,因为可能输入可能根本不是图像(http://example.com/malicious.exe或相同文件,但重命名为http://example.com/malicious.jpg)的欺骗性杂散URL - 这样的情况很容易被PHP检测到之前必须调用GD.我正在寻找GD预先消毒,然后GD尝试解析文件的营.
作为第一步,以下正则表达式检查URL是否是图像扩展名:
preg_match('@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)([^\s]+(\.(?i)(jpg|png|gif|bmp))$)@', $txt,$url);
我需要以编程方式检查用户在我的应用程序上选择作为他的墙纸的图像是否损坏或损坏......基本上我为用户提供了选择他自己的图像作为墙纸的选项。现在当图像加载时,我只想检查它是否以某种方式损坏......