이을 .php.png .php.jpg, .js.jpg, 가에,을 .js.png 같은 것을 보안 목적으로 업로드 된 파일 (이미지)의 이름이며 업로드가 완료된 후 파일을 해당 폴더로 이동하기 전에 교체해야하는 확장이 있는지 알고 싶습니까?업로드 된 이미지의 이름이 포함되어있는 경우 .php.jpg
답변
파일 이름 만 보는 것은 악성 코드/실행 파일을 업로드하는 것을 방지하는 안전한 방법이 아닙니다.
업로드를 허용하는 파일 유형에 따라 더 안전하게 재생할 수있는 방법이 있습니다.
일반적으로 웹에서 공개적으로 액세스 할 수있는 위치에 파일을 업로드하지 마십시오. 100 % 알기 전까지는 의심의 여지가 없습니다.
이미지 업로드를 허용하는 경우 GD 또는 ImageMagick과 같은 서버 측 기술을 사용하여 파일을 다시 저장하십시오. 이러한 도구가 업로드 된 이미지에서 유효한 이미지를로드 할 수없는 경우 (알고있는 오류를 발견하면 ...) 수동으로 조사 할 때까지 파일을 삭제하거나 격리하십시오.
확장 파일이 스왑 아웃/대체 된 경우에도 업로드 된 파일을 원본 파일 이름으로 저장하지 마십시오.
업로드 보안을 위해 사이트에서 좀 더 자세한 정보를 검색하십시오.이 질문은 합리적으로 정기적으로 제기됩니다.
chmod()를 통해 파일 액세스 권한을 설정하면 사용 권한이 변경된 것을 볼 수 없습니다. 변경 전 fileperms()를 통해 권한 모드를 표시하고 변경 한 후에는 값이 동일합니다. Ajax 응답 텍스트에는 33206이라는 동일한 값이 들어 있습니다.이 파일에 대한 사용 권한이 변경되지 않았 음을 의미합니까, 아니면 현재 Windows 환경에서 스크립트를 테스트하고있는 것과 관련이 있습니까? – user1190478
파일에 대해 필요한 작업에 따라 파일을 암호화하거나 gzip을 실행할 수 있습니다. 서버 공간을 절약 할 수 있으며 누군가가 스크립트 파일을 업로드하면 http 요청을 통해 실행할 수 없습니다. 내가해야 할 일은 제출 된 공개 액세스가 있는지 확인하고 htaccess 파일을 설정하는 것입니다.
어떻게 수행 할 수 있습니까? – user1190478
php 거기에 내가 사용할 수있는 zlib 및 htaccess 파일에 대한 많은 자습서가 인터넷에 있다고 생각합니다 – xasz
대답이 맞다. 예를 들어 'phtml', 'java', 'perl', 'py', 'asp와 같은 블랙리스트 방식을 사용하려는 경우 블로킹을 고려해야하는 다른 많은 실행 가능 확장 프로그램이 있습니다. ','go '를 선택하면 맬웨어를 제공 할 수있는 exe와 박쥐 등을 고려해야합니다.
하지만 업로드하려고하는 경우가 아니라 완전히 이동 (또는 더 복잡한 부분에 도달하기 전에 일종의 양식 유효성 검사로 업로드하는 것조차도)을 차단하려는 경우 블랙리스트 만 사용합니다. 움직일 때 이름을 바꾸십시오. 어떤 미지의 Java 또는 Go 또는 Python 등이 서버에 있는지에 관계없이 심지어 Apache에 있지 않아도 (마지막 세그먼트 이외의 장소에 실행 파일 확장명을 넣을 수 있음) 상관없이. 왜 그 업로드가 진행되도록 허용합니까? 3+ 레벨 이름을 허용하지 않는 것이 더 간단 할 수 있지만 (사람들이 추천하는 것을 볼 수 있습니다), 언어 식별과 같은 3 가지 레벨 이름의 적법한 사용이 많습니다. 이 접근법만으로는 실행 코드에서 안전하게 지켜주지는 않습니다. 이는 파일 업로드를 가능한 한 안전하게 만들기위한 더 큰 일련의 작업 (예 : 이미지 파일에서 포함 된 코드를 확인하려는 경우)의 일부 여야합니다.
답변 주셔서 감사합니다. 스크립트를 작성하여 모든 이미지의 이름을 바꾸고 고유 한 이름을 지정한 다음 해당 디렉토리로 이동합니다. 포함 된 코드는 어떻게 확인할 수 있습니까? – user1190478
Joomla가 무엇을하는지 확인할 수 있습니다. https://github.com/joomla/joomla-cms/blob/staging/libraries/cms/helper/media.php#L190 – Elin
@Elin. 정말 도움이되었습니다! – user1190478
- 1. 이름이 업로드 된 이미지가 있습니까?
- 2. 업로드 된 이미지의 크기를
- 3. 업로드 된 이미지의 크기
- 4. 클래스 이름이 배열에 포함되어있는 경우 클래스별로 div를 숨기는 필터
- 5. 업로드 된 파일 이름이 변경되었습니다
- 6. 업로드 된 이미지의 치수를 확인하십시오.
- 7. 업로드 된 이미지의 썸네일 만들기
- 8. 업로드 이미지의 확장자 저장
- 9. 업로드 된 이미지의 타임 스탬프 누락
- 10. 컴퓨터 이름이 포함 된 경우
- 11. 입력에 배열의 단어가 포함되어있는 경우
- 12. URL에 자바 스크립트가 포함되어있는 경우
- 13. PHP 문자열에 URL이 포함되어있는 경우
- 14. 데이터베이스에 업로드 된 이미지의 경로를 저장합니다.
- 15. "filename"에 "variable"명령이 포함되어있는 경우
- 16. Instagram의 이름이 업로드 된 파일은 무엇입니까?
- 17. 업로드 된 이미지의 C# 변경 dpi
- 18. 업로드 된 이미지의 BlogEngine.NET 폴더 구성
- 19. rails3에 업로드 된 이미지의 동적 이미지 크기
- 20. 업로드 된 이미지의 파일 확장자 변경하기
- 21. 업로드 된 이미지의 크기를 조정하려면 어떻게해야합니까?
- 22. 업로드 된 이미지의 경로를 db로 업데이트하십시오.
- 23. 업로드 된 이미지의 크기를 WordPress의 크기로 조정하십시오.
- 24. 업로드 된 이미지의 md5 해시 만들기
- 25. 업로드 된 파일 또는 이미지의 클라이언트 경로?
- 26. Wordpress 업로드 된 이미지의 크기가 조정되지 않습니다.
- 27. 무들에 업로드 된 이미지의 경로를 가져 오기
- 28. 서버에 업로드 된 이미지의 경로 저장
- 29. Sails.JS에 업로드 된 이미지의 URL을 다운로드 받으십시오.
- 30. 어도비 cq5 업로드 된 이미지의 축소판 그림
대체하려면 어떻게해야합니까? –
파일 업로드 후 파일을 PHP 파일로 실행할 가능성을 제외합니다. – user1190478
가능한 [중복 된 보안 위협] (http://stackoverflow.com/questions/11061355/security-threats-with-uploads) – deceze