2013-07-04 2 views
1

파일 형식 제한이있는 파일 업 로더가 있습니다. 업 로더는 파일 확장자 (* .txt => allowed, * .exe => 허용되지 않음)를 확인하여 파일 유형을 확인합니다. 이제 파일 확장명을 편집하고 허용되지 않는 파일 일지라도 파일 확장명을 업로드하는 것이 문제라는 말을 들었습니다.끝이없는 파일 형식 감지

내 질문은 : 파일 확장명을 확인하지 않고도 파일 형식을 검색 할 수 있습니까? 어떤 방식 으로든 보안 상 위험 할 수 있습니까? 확장 프로그램이있는 바이너리를 업로드 할 수 있습니까?

MVC4에서 Ajax/Javascript를 사용합니다 (Windows Server). 하지만 일반적인 질문이라고 생각합니다.

미안하지만 그 질문이 그다지 도전적이지는 않지만 묻는 것 외에도 어떻게 찾을 수 있는지 몰랐습니다. (no downvotes please ^^)

+1

일부 발견 적 방법이 있지만 바보 같은 것은 아닙니다. –

+1

도움이됩니다. http://stackoverflow.com/a/11548095/284240 –

+1

또는 http://stackoverflow.com/q/58510/157833 –

답변

0

파일 내용을 볼 수있는 경우 다양한 파일 형식에서 다양한 '마법 번호'를 찾을 수 있습니다. http://en.wikipedia.org/wiki/EXE은 파일 내용을보고 실행 파일을 식별하는 데 사용할 수있는 Windows 실행 파일의 일부 마커에 대한 정보를 제공합니다. MSDN 및 다른 곳에서 제공되는 파일 형식에 대한 자세한 기술 자료가 있습니다.
보안 위험인지 여부는 데이터를 검색 한 후에 수행 한 작업에 따라 크게 달라질 수 있습니다. 바이트 문자열은 잘못 처리되고 반대로 안전하게 처리 될 수있는 경우 EXE 패키지에 없더라도 실행될 수 있습니다.

0

파일 형식을 검색하려면 확장명을 보거나 내용을 살펴보십시오.

1) 이미 알아 두었 듯이 확장은 단지 규칙 일 뿐이므로 안정적이지 않습니다. 아무도 확장 기능이 올바른지 확인할 수 없습니다.

2) 다른 방법은 파일을 조사하여 유형을 추측하는 것입니다. 이를 위해 알려진 헤더 또는 다른 종류의 서명 목록을 찾아야합니다. 파일 유형에 따라 더 안정적 일 수 있지만 예상되는 파일의 종류에 따라 큰 오버 헤드가 발생할 수 있습니다.