사용자가 링크를 제출하고 해당 링크의 이미지를 축소판으로 사용하도록 지정하는 사이트를 개발 중입니다. 이미지는 사용자가 업로드하지 않고 웹 페이지에서 저장됩니다.외부 서버의 이미지를 안전하고 안전하게 저장합니다.
나는이 작업을 수행하는 두 가지 옵션이 있습니다 것 같다 그들은 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 core/libraries/Upload.php 파일 (특히 MIME 유형 검사)을 살펴보십시오. 파일 확장자 (예 : jpg/png)를 사용하여 파일의 실제 유형을 결정할 수는 없습니다. 콘텐츠에 관한 한, A/V 소프트웨어로 스캔하는 것이 부족합니다. 참조 : http://stackoverflow.com/a/8638112/183254 – stormdrain