2010-08-21 3 views
0

Zend Framework를 사용하여 PHP 이미지 업 로더를 만들었습니다. 이미지를 공개 디렉토리에 업로드하여 사람들이 자유롭게 액세스 할 수있게합니다.안전한 PHP 이미지 업 로더를 만드는 방법은 무엇입니까?

지금까지 보안을 위해 이러한 조치를 시행하고있다

: - 파일 크기 확인 - 확장 유효성 검사 - MIME 타입 검증 - 성공적인 검증 파일시 공용 폴더에있는 이미지 확장자로 이름이 변경되어, 예/이미지/업로드/...

충분히 안전한가요? 일부 바이러스 백신 스크립트를 통해 실행할 수 없습니까 (필수 사항)?

답변

0

파일 확장자와 MIME 유형을 쉽게 위조 할 수 있습니다. 실제로 이미지인지 확인하려면 getimagesize()을 사용하십시오.

+4

이는 잘못된 해결책 인 IMO입니다. 완벽하게 유효한 PHP 스크립트 인 완벽하게 유효한 GIF 이미지를 만드는 것도 가능합니다. 잘못된 이미지 파일은 유효하지 않기 때문에 버려야하지만, 보안을 위해서는 적절한 서버 구성에 의존해야합니다. 서버가 공용 디렉토리의 파일을 실행하지 못하게하십시오. 또한, 업로드 된 이미지에 대해 적절한 파일 확장자를 적용하고 ('image.gif.php'라는 이미지를 허용하지 않음) PHP에 의해'.php' 파일 만 처리되도록하십시오 (대부분의 서버는 이미 올바르게 설정되어 있습니다). –

+1

위의 악용에 대한 자세한 내용은 다음 링크를 참조하십시오. http://www.phpclasses.org/blog/post/67-PHP-security-exploit-with-GIF-images.html –

+0

정보를 제공해 주셔서 감사합니다. 그 착취를 알지 못했습니다. – Maerlyn

0

업로드를 공용 폴더에 저장하면 안됩니다. 개인 디렉터리에 이미지를 저장하고 이미지를로드하려면보기 도우미를 사용해야합니다.

관련 문제