2012-10-22 3 views
0

base64 인코딩 (기본값)을 사용하여 html5 캔버스 기반 이미지 업로드를 사용하고 있습니다. 서버 측 : 요청이 게시되면 base64 헤더가 제거되고 base64_decode 함수 (eval php 함수가 전혀 사용되지 않음)가 적용되어 파일 시스템에 jpg로 직접 저장됩니다.html5 직접 파일 업로드 보안 위험이 있습니까?

업로드 된 파일을 업로드 한 파일의 사본으로 저장하고 있습니다. 사용자가 jpg로 위장한 악성 php/js 파일을 업로드하고 방문자가 나쁜 jpg를 보게되면 보안 위험이 발생합니까? 그렇다면 gd로 업로드 된 파일을 처리 할 것입니다. gd가 처리 된 후에 나는 그것들이 사라질 것이라고 가정합니다.

+0

누구에게 보안 위험이 있습니까? 나 또는 사용자의 경우 – MaVRoSCy

+0

이지만 해결책은 gd로 모든 업로드를 처리하므로 결과가 변경되지 않습니다. – opteronn

답변

0

업로드 된 파일을 업로드 한 파일의 사본으로 저장하고 있습니다.

그런 다음 모든 종류의 파일 업로드를 처리 할 때 모든 문제가 발생합니다. HTML 5에는 특별한 것이 없습니다.

사용자가 jpg로 위장한 악성 php/js 파일을 업로드하고 방문자가 나쁜 jpg로 인해 보안 위험이 있다고 생각하는 경우?

image/jpeg 콘텐츠 유형 - 아니요로 HTTP를 통해 전달한다고 가정합니다.

그러나 이미지 라이브러리의 버퍼 오버플로 기반 취약점은 과거에는 문제가 있었으므로 이론적으로 특수하게 조작 된 JPEG로 최종 사용자의 시스템에서 보안 취약점을 악용 할 수 있습니다.

+0

"이미지/jpeg 콘텐츠 유형 - 아니요로 HTTP를 통해 전달한다고 가정합니다." 나는 대답을 똑바로 아니라고 생각하지 않는 이유는 물었다. – opteronn

+0

@opteronn - 시나리오와 그 가정을 감안할 때, 대답은 * 똑바로 "아니오"입니다. – Quentin

+0

"그렇다면 모든 종류의 파일 업로드를 처리 할 때 얻을 수있는 모든 문제가 있습니다. 여기 HTML 5에만 해당하는 사항은 없습니다." html5 toDataURL() 메서드에서 base64 인코딩의 기본 사용 때문에. – opteronn

관련 문제