2012-06-30 3 views
-1

파일 업로드를 허용하는 프로젝트에서 작업 할 때 다운로드 파일은 사용자가 파일을 다운로드하도록합니다.PHP 5 : cURL을 통한 파일 다운로드는 안전한가요?

문제점은, allow_url_fopen이 사용 불가능하게 설정된 경우를 제외하고는 잘 작동하는 file_get_contents를 사용하여 해결 방법을 제공하려고합니다.

다른 경우에는이 문제가 있었지만 잘 작동하는 cURL을 사용했지만이 방법으로 사용하는 것이 안전한지 궁금합니다.

cURL이 사용하기에 적합하지 않은 경우 다른 방법으로 파일 데이터를 다운로드 할 수있는 좋은 방법은 무엇입니까?

이 문제를 해결하기 위해 CodeIgniter 2를 사용하고 있습니다.

감사

편집 : 컬이 나쁜 것 같았다 왜 내 문제에 명확하게하려면, 파일이 항상 로컬 및 PHP 코드가있는 서버에있는 것,이 스크립트 인 원격 데이터를 다운로드하지 않습니다 하지만 file_get_contents는 앞에서 설명한 이유 때문에 옵션이 아닙니다.

+0

사이트가 실행중인 서버에서 원격으로 파일을 작업하는 것처럼 들리 겠지만, 이는 cURL 또는 file_get_contents를 사용해야하는 유일한 이유 일 것입니다. 그렇습니까? – Pebbl

+0

파일은 로컬이고 서버에 있습니다. 파일이 서버에서 끝나는 사용자에 의해 업로드되면 모든 사용자는 다운로드를 처리하는 링크 (파일 이름이 암호화되고 다운로드가 로깅 됨)를 클릭하여 해당 파일을 다운로드 할 수 있습니다. 필자가보기에는 file_get_contents를 사용하는 모든 예제가 있지만 항상 옵션은 아닙니다. 다운로드되는 파일이 항상 서버의 동일한 디렉토리에서 오는 것이므로 원격 소스에서 가져온 파일이 없어야합니다. – Eman

답변

0

나는 그것을 알아 냈고, 나는 fopen과 fread에 관한 모든 것을 잊었다.

내 문제가 해결되었습니다.

+1

아 .. 그냥 첫 번째 대답을 발견 - gd gd ... :) 네, 그게 내 원래의 질문으로지고있어. 지역에있는 경우 로컬 파일 작업을 사용하는 것이 가장 좋습니다. file_get_contents는 쉽고 편리하지만 fopen_wrappers에 의해 제한됩니다. 추후에 참조 용으로 cURL을 사용하여 파일을 잡는 데 정말로 "안전하지 않은"것이 없었으나 (요청에 대한 완전한 제어권을 가졌으므로) 전혀 최적이 아니었을 것입니다. :) – Pebbl