我正在開發一個網站,用戶提交鏈接,並指定該鏈接的圖像作爲縮略圖。該圖像將從網頁保存,而不是由用戶上傳。從外部服務器可靠,安全地保存圖像
好像我有兩個選擇這樣做,他們是file_get_contents
和cURL
的file_get_contents例如:
$url = 'http://example.com/file_name.jpg';
$img = '/path/file_name.jpg';
file_put_contents($image, file_get_contents($url));
捲曲例如:
$ch = curl_init('http://example.com/file_name.jpg');
$fp = fopen('/path/file_name.jpg', 'wb');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);
在可靠性和安全性方面,這是首選?使用現有方法獲取遠程文件有哪些安全問題,以及如何防止這些問題?
我正在使用Codeigniter,如果有任何類或功能,將有助於此。
我避免了文件上傳,因爲它不是用戶應該做的事情。我不希望他們保存圖片並上傳。 – Motive
至於安全性,我的擔心更多的是確保文件只是一個圖像,並且不包含任何惡意內容。 – Motive
看一下codeigniters的核心/庫/ Upload.php文件(具體是MIME類型檢查)。您不能依賴文件擴展名(例如jpg/png)來確定文件的實際類型。就內容而言,對於短時間使用A/V軟件進行掃描,您所能做的並不多。請參閱http://stackoverflow.com/a/8638112/183254 – stormdrain