의 인수 여부를 “좋은 연습” 사용자가 아닌 파일을 다운로드 하도록 강요 하는 것으로 간주 됩니다 exepected 정말이 문서에 있는 장소가 없는 그들의 브라우저를 처리 시키는 것 보다. 어떤 경우에는 다른 사람에서 그것은 아마이 지 않는 동안 적합 하다. 자, 캐시 컨트롤의 사용이 경우에, 두 값을 모두 0으로 설정 특히, 마이크로 소프트에 따르면, 하지만 6으로 작동 하 고 i e 7을 하 고 나중에 그것을 무시 하므로 전혀 해로울 것도 잘못입니다. 그렇다면 그들은 멀리 공유 호스트에서 이동 해야 합니다. 그것은 sendfile 같은 것 들을 활성화 하는 그들의 관심에 있어요. 아마도 그들은 여전히 mod_php를 실행 하 고 절름발이 권한 쓰레기가 너무 있다. 안녕하세요, 좋은 그것이 이런식으로 작동:) DB 레코드 id에 대해이 문서를 확인 하십시오. https://www.finalwebsites.com/creating-secure-php-websites/(모든 코멘트의 대부분) 만약 당신이 파일을 다운로드 하는 대신에 직접 웹 브라우저에서 그것을 보는 사람이 원하는가? 그것은 HTML 파일이 나 PDF로 있다면, 당신은 단지 (우리가 덮여 있기 때문에) 웹 브라우저가 자동으로 해당 문서를 열고 인라인을 표시 하는 그 문서에 링크를 게시할 수 없습니다. 이러한 파일을 사람의 컴퓨터에 다운로드 하 게 하려면, 대신 PHP를 사용 하 여 일부 속임수 할 필요가 있다. 당신은 당신이 아파치를 사용 하는 가정,이 지시어로 다운로드 스크립트가 포함 된 폴더에 .htaccess 파일을 만들, 이것을 피하기 위해 같은 일을 하 여 추가 영리 되 고 있다고 생각할지 모 르다: 당신은 여전히 이상한 결과를 다운로드 받을 경우 (특히 즉,), 그 php 출력 압축 뿐만 아니라, 어떤 서버 압축 (때로는 서버가 실수로 출력 php 스크립트에 의해 생산 되는 압축을 적용)을 사용할 수 있는지 확인 합니다. 요즘은 고객의 웹사이트가 트래픽의 대량 생성이 있기 때문에 클라이언트가 … 하지만, 전에, 그것에 대해 생각: 누구나 서버에, 심지어 그것은 공용 html 영역 밖에 서 어떤 파일을 요청할 수 있습니다. 추측은 너무 어렵지 않고 몇 가지 시도에서 공격자는 구성 또는 암호 파일을 얻을 수 있습니다.
이것은 많은 겉보기에 모호한 오류의 원천입니다. 출력 버퍼링을 사용 하는 경우 파일은 청크 단위로 사용자에 게 전송 되지 않고 스크립트 끝에만 전달 됩니다. 둘째, 어쨌든 압축이 필요 하지 않은 이진 파일을 출력할 가능성이 높습니다. 셋째, 일부 구형 브라우저 + 서버 조합은 텍스트 파일 (PHP)을 요청 하 고 있지만 다른 콘텐츠 형식으로 압축 된 데이터를 보내는 것을 혼동 될 수 있습니다. 다음으로 우리는 파일이 존재 하 고 읽을 수 있는지 여부를 확인 하 고, 그렇다면 우리는 파일 크기와 이진 읽기 전용 모드 (rb)에서 파일을 열고 적절 한 http 헤더를 보낼 수 있습니다. 그런 다음 파일이 성공적으로 열려 있으면 fpassthru () 함수를 사용 하 여 결과를 출력 버퍼에 기록 합니다. 어떤 조건의 경우 우리는 $err 메시지를 표시 하는 unsuccfull 했다. 안녕하세요, 좋은 당신이 그것을 해결, 당신의 이전 솔루션은 헤더 및/또는 “초기” 출력 중 하나에 문제가 있는 것 같아요. 나쁜 것은 헤더가 다른 서버 구성에 대해 서로 다른 작업을 한다는 것입니다. 물론 그들은 멀리 이동 해야 하지만, 그들의 많은 관리 서버 호스팅에 대 한 높은 비용 때문에 호스팅 공유와 막대기.
이 웹사이트는 digit ocean에 의해 VPS 이며 제어판의 일종으로 serverpilot을 사용 하 고 있습니다. 그것은 활성화 되어 있지 않기 때문에 내가 mod_sendfile를 사용할 수 없습니다, 하지만 난 Nginx 변종을 확인 합니다. 단순히 파일 이름 주위에 따옴표를 추가 하 여, Safari는 제대로 결과 다운로드 이름을. 당신은 신중 하 게 위의 예제 코드를 참조 하는 경우, 당신은 “다운로드 .php” 파일에 다운로드 링크 파인트을 찾을 수, URL은 또한 쿼리 문자열로 이미지 파일 이름이 포함 되어 있습니다. 또한, 우리는 PHP urlencode () 함수를 사용 하 여 이미지 파일 이름을 안전 하 게 url 매개 변수로 전달할 수 있으므로 파일 이름에 url을 안전 하지 않은 문자를 포함할 수 있습니다 인코딩. 안녕하세요, 저는 귀하의 코드를 사용 하 여 다운로드. php 파일을 만들기 위해, 주문에서 내 파일을 보호 하기 위해! $ _session 사용자. 만약 내가 700 chmod를 값으로 사용 하는 경우, 페이지를 다운로드 파일을 반환 하지 않습니다 나는 url을 액세스에서 내 폴더를 보호 하기 위해, 싶지만, 빈 (남아 있을 것입니다 실패 foopen).