【问题标题】:Generate thumbnails from untrust remote images从不受信任的远程图像生成缩略图
【发布时间】:2014-05-28 22:37:17
【问题描述】:

我在做一个简单的缩略图生成器,生成缩略图没问题,我是用PHP,file_get_contents来获取移除图片内容的。

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

  1. 如何限制文件大小并在 X Mo 停止下载?
  2. 如何检查二进制内容是否有危险代码?
  3. 也许除了 PHP 之外还有其他技术可以满足我的需求?

谢谢

【问题讨论】:

  • with cURL or file_get_contents 要具体并提供一些代码。
  • 您对file_get_contents 的控制有限,尽管从5.1 开始支持maxlen,但您仍然受制于allow_url_fopen 指令;我建议使用 curl,这将有助于最大下载大小:stackoverflow.com/questions/17641073/…
  • @zamnuts 谢谢,所以我可以使用 CURL WRITE FUNCTION 读取第一个字节并检测 JPG/PNG ! (根据stackoverflow.com/questions/3312607/…)!

标签: php curl thumbnails


【解决方案1】:

这里我将测试一段代码:

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"
});

【讨论】:

    猜你喜欢
    • 2013-05-08
    • 2011-12-21
    • 2016-04-09
    • 1970-01-01
    • 2016-06-09
    • 2014-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多