이미지 파일 형식을 확인하기 위해 일반적인 접근 방식을 사용했음에도 불구하고 일부 사용자에게는 업로드 프로세스 중에 오류가 발생했습니다.
제공된 코드 조각은 사용자가 제공한 $_FILES['fupload']['type'] 속성을 활용합니다. 악의적인 사용자에 의한 조작. 이 취약점을 해결하기 위해 mime_content_type()을 사용하면 정확도가 향상된다는 제안이 있습니다.
그러나 권장되는 해결 방법은 사용자 정의 값에 전적으로 의존하지 않는 것입니다. 대신, 자체 유형 확인을 수행하는 것이 좋습니다.
이미지의 경우, extract_imagetype() 함수는 파일의 실제 형식을 결정하는 신뢰할 수 있는 방법을 제공합니다.
$allowedTypes = array(IMAGETYPE_PNG, IMAGETYPE_JPEG, IMAGETYPE_GIF); $detectedType = exif_imagetype($_FILES['fupload']['tmp_name']); $error = !in_array($detectedType, $allowedTypes);
이 접근 방식은 이미지의 바이너리 서명을 직접 사용하여 사용자가 파일 형식을 조작할 가능성을 제거합니다.
또는 고급 파일 형식 확인을 위해 다음을 사용하는 것이 좋습니다. 서버가 지원하는 경우 finfo 기능을 사용하세요.
위 내용은 PHP에서 업로드된 이미지 파일 형식을 어떻게 안전하게 확인할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!