Php 从不可信的远程图像生成缩略图

Php 从不可信的远程图像生成缩略图,php,curl,thumbnails,Php,Curl,Thumbnails,我正在做一个简单的缩略图生成器,生成缩略图没有问题,我正在使用PHP,file_get_contents来获取删除图像内容 我想知道下载这样的文件内容(使用cURL或file_get_内容)是否存在安全问题 如何限制文件大小并在X Mo停止下载 如何检查二进制内容是否没有危险代码 也许还有比PHP更适合我的技术吗 谢谢这里我将测试一段代码: curl_setopt($cURL_Handle, CURLOPT_BUFFERSIZE, 128); curl_setopt($cURL_Handle,

我正在做一个简单的缩略图生成器,生成缩略图没有问题,我正在使用PHP,file_get_contents来获取删除图像内容

我想知道下载这样的文件内容(使用cURL或file_get_内容)是否存在安全问题

  • 如何限制文件大小并在X Mo停止下载
  • 如何检查二进制内容是否没有危险代码
  • 也许还有比PHP更适合我的技术吗

  • 谢谢

    这里我将测试一段代码:

    curl_setopt($cURL_Handle, CURLOPT_BUFFERSIZE, 128);
    curl_setopt($cURL_Handle, CURLOPT_NOPROGRESS, false);
    curl_setopt($cURL_Handle, CURLOPT_PROGRESSFUNCTION, function(
        $DownloadSize, $Downloaded, $UploadSize, $Uploaded) {
        // If $Downloaded exceeds 1KB, returning non-0 breaks the connection!
       return ($Downloaded > (1 * 1024)) ? 1 : 0;
    });
    curl_setopt($cURL_Handle, CURLOPT_WRITEFUNCTION, function(
        $ch, $str) {
        // Grab the first bytes, check if match a image "header signature"
    });
    

    使用cURL或file\u get\u contents
    要具体,并提供一些代码。您对
    file\u get\u contents
    的控制有限,尽管从5.1开始,is支持
    maxlen
    ,但您仍受
    allow\u url\u fopen
    指令的支配;我建议使用curl,这将有助于最大下载大小:@zamnuts谢谢,所以我可以使用curl WRITE函数读取第一个字节并检测JPG/PNG!(据)!!