* .cpp 소스 파일을 업로드 할 수 있도록 간단한 PHP 스크립트를 설계하고 있습니다. 기본 보안 조치로 임시 파일을 영구 위치로 이동하기 전에 임시 파일의 MIME 유형을 확인합니다. 터미널 (Mac OS X)에서 file --mime myfile.cpp
을 실행하면 text/x-c
으로 표시됩니다. 그러나 서버는 어떤 이유에서이 메시지를 application/octet-stream
으로 봅니다. /etc/mime.types
에서 "cpp"확장자는 text/x-c++src
에 있으며 Mac에서 MIME 유형에 문제가 있다고 생각됩니다.PHP에서 잘못된 MIME 유형을보고합니다.
우분투에서 같은 절차를 시도했는데 정상적으로 작동합니다 (text/x-c++src
). 두 컴퓨터에서 Chrome을 사용하고 있습니다.
정확히 프로그래밍 문제는 아니지만, 익숙하지 않은 PHP 트릭이있을 수 있습니다.
$temp_file=$_FILES["file"]["type"];
if(($temp_file!="text/x-c++src")||($temp_file!="text/x-c")) {
echo "<p style=\"color:red;font-style:italic\">Please upload a valid C++ file.</p>";
}
업로드 된 파일의 확장명을 사용하고 싶지 않습니다. 스푸핑이 매우 쉽기 때문입니다. finfo() 메소드를 살펴 보겠다. 고마워. – ad2476