저는 보안 문제가 일반적으로 사용자 입력에서 발생한다는 것을 알고 있습니다. 그 이유는 $ eFlag! = 1의 else 부분에 보안 허점이 있다고 가정하기 때문입니다.
저는 PHP에 익숙하지 않아서 여기서 어떤 일이 일어나고 있는지 100 % 확신하지 못했습니다.파일 업로드로 인한 보안 문제
업로드되는 파일 자체가 일부 악의적 인 실행 파일 일 수 있으며 확인되지 않았습니다. 그렇다면 실행 파일을 업로드하지 못하도록하거나 .doc 파일을 업로드하지 못하도록하는 방법이 있습니다 (프로그램에서 원하는 파일처럼 보입니다).
*** 내가 학교에 다니고 있으며 보안 구멍을 확인하도록 요청한 클럽 중 하나에 게시되었습니다 (다시 말해 확실한 것은 있음). 마임 유형을 확인하기 위해 php.net에
strcmp(substr(mime_content_type($_FILES['userfile']['tmp_name']),0,4),"doc"
전체 예 :
업로드 된 내용에 관계없이 스크립트는 .doc 확장자를 사용합니다. 그것이 보안 위험 또는 단순한 어리 석음으로 자격이 있는지 여부는 확실하지 않습니다. – fvu
정확히 .. 어떻게 그것이 doc 파일인지 확인합니까? 그래서 사실, .doc 파일이라면 무엇이든 업로드하고 .doc 확장자를 붙이는 대신 업로드 할 것입니다. – antz
.doc 파일은 악의적 인 요소에 대한 취약성으로 잘 알려져 있지만 비교적 안전한 방법은 파일의 [서명] (http://www.garykessler.net/library/file_sigs.html)을 확인하는 것입니다. 그것이 옵션이라면 먼저 파일 유형을 결정할 수있을뿐만 아니라 (그리고 저장된 파일에 적절한 파일 확장명을 사용할 수도 있습니다), 두 번째로 virussscanner를 통과하게됩니다. – fvu