2012-07-06 2 views
0

simple file upload script을 사용하고 있습니다. 이 스크립트는 파일 유형 필터링을 허용하지만 어떤 파일을 허용/금지해야하는지 확신하지 못합니다.사용자가 업로드 한 콘텐츠의 악성 파일 유형 필터링

업로드하지 못하게하는 파일 형식은 무엇입니까?

+0

모든 파일을 업로드 할 수 있습니다. 목표 위치에서 실행될 수 없는지 확인하십시오. 내가 중복을 파헤 칠 수 있는지 알게 될 것이다. –

+0

블랙리스트 (허용되지 않는 파일 유형의 목록)가 아닌 허용 된 파일 유형의 목록 인 화이트리스트를 사용하면 더 안전 할 것이다. – robbrit

+0

가능한 복제본 [업로드 된 PHP 파일의 실행을 막으시겠습니까?] (http://stackoverflow.com/questions/5885643/prevent-execution-of-uploaded-php-files) –

답변

1

필요한 유형 만 허용해야합니다 (허용 목록). 사람들이 만들 수있는 서버, PHP 또는 파일 유형과 서버에서 수행 할 수있는 작업에 대해 무엇이 바뀌 었는지 결코 알 수 없습니다.

적은 유형 검사 대신 보안을 희생 할 이유가없는 것으로 보입니다.

0

블랙리스트를 작성하지 마십시오. 대신 허용 된 파일 형식의 화이트리스트를 만드십시오.

1

찾을 수 THIS (htaccess로에 넣어) : '해제'PHP는, 그래서 파일이 실행되지 않을 수

php_flag engine off 

! 그런 다음, 따라서 그것을 신뢰하는 안전하지 않습니다 브라우저에서 보낸

(링크 페카 덕분에)

1

$ _FILES에서 제공하는 마임을 원하는대로의 업로드를 허용 할 수 있습니다. 파일의 MIME을 확인하는 기능이 있지만 대부분은 파일 확장명을 사용합니다. 이것은 .exe 파일의 이름을 .png로 쉽게 바꿀 수 있기 때문에 그것을 판별하는 것은 좋지 않은 방법이며, 함수는 이미지라는 것을보고 할 것입니다. 나는 당신의 필요를 확신하지 못하지만 이미지 파일만을 허용하고 스크립트가 imagemagick 또는 gd 라이브러리가있는 이미지인지 확인하도록 스크립트를 제한 할 수 있습니다.

파일을 그대로 유지하는 것은 위험합니다. 그러나 사용자 파일을 실행할 수있는 보안 결함이있는 경우 파일이 잠재적 인 위협이 될 수 있습니다.

일부 파일 형식을 거부하지 말고 사용자가 업로드하려고하는 몇 가지 파일을 허용하는 것이 좋습니다.

관련 문제