파일에서 getimagesize()
을 호출하고 반환 값이 false
과 다른지 확인하여 파일이 이미지인지 여부를 판단하십시오.getimagesize()를 사용하여 파일이 이미지인지 여부를 확인하십시오.
파일이 단순히 이미지의 확장자를 확인하는 것보다 훨씬 빠를 수있는 PHP 이미지인지를 판단 할 수있는 다른 방법이 있습니까?
파일에서 getimagesize()
을 호출하고 반환 값이 false
과 다른지 확인하여 파일이 이미지인지 여부를 판단하십시오.getimagesize()를 사용하여 파일이 이미지인지 여부를 확인하십시오.
파일이 단순히 이미지의 확장자를 확인하는 것보다 훨씬 빠를 수있는 PHP 이미지인지를 판단 할 수있는 다른 방법이 있습니까?
지원되는 파일 형식인지 여부는 알 수 있습니다. 실제로 파일의 헤더 바이트를 파싱하므로 매우 신뢰할 수 있습니다.
PHP에 내장 된 가장 좋은 방법입니다. ImageMagick'sidentify
같은 명령
고급 도구가 본질적으로 동일 할 - 당신이 getimagesize()
에서 지원하는 것보다 더 많은 파일 형식을 지원해야하는 경우에만이를 고려 (자신의 목록은 IMAGETYPE_*
상수, here입니다).
getimagesize()은 파일이 이미지라는 믿을만한 표시입니다.
이미지에 유효한 헤더가 있는지 확인합니다.
실제 이미지 데이터에 손상이 있는지, 일반적으로 이미지가 엉망인 것처럼 보이는지 또는 이미지를로드하는 과정에서 오류가 있는지를 판단하지 않습니다.
파일이 유효한 이미지 파일 일 수도 있지만 메타 데이터, 이미지 데이터 또는 이미지 데이터의 끝 부분에있는 다른 데이터를 숨길 수도 있습니다. 그래서 getimagesize()는 유효한 이미지를 가지고 있다고 말할 수 있지만 반드시 그 파일이 다른 유형으로 유효하지 않다는 것을 의미하지는 않습니다. JAR 및 ZIP 파일은 파일의 끝에서부터 읽기 때문에 파일이 유효한 이미지와 유효한 JAR/ZIP 파일 일 수 있으며 JAR 파일은 GIFAR exploit의 기반 인 브라우저에서 실행 가능합니다.
GIFAR 익스플로잇의 헤드 업에 대해 감사 드리며, 그 점에 대해 몰랐습니다! – ChrisR