PHP 파일 다운로드

이것은 많은 겉보기에 모호한 오류의 원천입니다. 출력 버퍼링을 사용 하는 경우 파일은 청크 단위로 사용자에 게 전송 되지 않고 스크립트 끝에만 전달 됩니다. 둘째, 어쨌든 압축이 필요 하지 않은 이진 파일을 출력할 가능성이 높습니다. 셋째, 일부 구형 브라우저 + 서버 조합은 텍스트 파일 (PHP)을 요청 하 고 있지만 다른 콘텐츠 형식으로 압축 된 데이터를 보내는 것을 혼동 될 수 있습니다. 두 개의 새 파일을 만들고 그들을 다운로드 하 여 전화를 시작 하려면. php와 index.php. 다운로드. php를 열고 편집기가 그것에 추가 된 전체 콘텐츠를 제거 후 다음을 입력 시작: 먼저, 당신은 범위를 지 원하는 브라우저를 신호 해야 합니다: 당신이 해야-항상-입니다 청소 입력. 다음과 같이 파일 이름만 허용 합니다. 하지만 전에, 그것에 대해 생각: 누구나 서버에, 심지어 그것이 공용 html 영역 밖에 서 어떤 파일을 요청할 수 있습니다. 추측은 너무 어렵지 않고 몇 가지 시도에서 공격자는 구성 또는 암호 파일을 얻을 수 있습니다.

헤더 (` HTTP/1.1 416 요청 된 범위 `); PHP는 당신이 작성 하 고 있는 파일의 HTTP 헤더를 변경할 수 있습니다. 이 과정을 통해 파일을 강제로 다운로드 하 여 브라우저에서 같은 창에 로드 하도록 할 수 있습니다. 이것은 pdf 파일, 문서 파일, 이미지, 그리고 당신이 당신의 고객을 다운로드 보다는 브라우저에서 직접 온라인으로 소비 하려는 비디오와 같은 파일이 완벽 합니다. 자, 캐시 컨트롤의 사용이 경우에, 두 값을 모두 0으로 설정 특히, 마이크로 소프트에 따르면, 하지만 6으로 작동 하 고 i e 7을 하 고 나중에 그것을 무시 하므로 전혀 해로울 것도 잘못입니다. 파일 이름만으로 작업 하 고 경로를 추가 합니다. 그 게 당신이 필요 합니다. « 원숭이 .gif » 파일 이름으로 변경 합니다. 당신은 다른 서버에서 다운로드 해야하는 경우, « 원숭이 .gif » 변경 « http://www.exsample.com/go.exe » set_time_limit (0); $file = @fopen ($file _path, « rb »); (! feof ($file)) {인쇄 (@fread ($file, 1024 * 8); ob_flush (); 플러시 ();) 다음으로 우리는 파일이 존재 하 고 읽을 수 있는지 여부를 확인 하 고, 그렇다면 우리는 파일 크기와 이진 읽기 전용 모드 (rb)에서 파일을 열고 적절 한 http 헤더를 보낼 수 있습니다. 그런 다음 파일이 성공적으로 열려 있으면 fpassthru () 함수를 사용 하 여 결과를 출력 버퍼에 기록 합니다. 어떤 조건의 경우 우리는 $err 메시지를 표시 하는 unsuccfull 했다. 나 ` m 완전 한 예를 쓰지 않을 것 이지만 옳은 방향에 (서) 당신을 가리킬 것 이다.

juin 22nd, 2018