나는 서버의 디렉토리에 이미지를 업로드하는 PHP 스크립트가 있습니다. 그러나 이미지가 보안 문제 때문에 루트 디렉토리에 업로드되어서는 안된다는 언급이있었습니다. 현재 업로드중인 디렉토리에 업로드 할 경우 발생할 수있는 보안 취약점에 대해 확신 할 수 없습니다. 다음은 이미지가 저장 될 경로입니다. htdocs/images/filenames.jpg. 이미지 업로드 디렉토리 보안
안전한 방식으로 이미지를 저장할 위치에 대해 알려주십시오.
나는 서버의 디렉토리에 이미지를 업로드하는 PHP 스크립트가 있습니다. 그러나 이미지가 보안 문제 때문에 루트 디렉토리에 업로드되어서는 안된다는 언급이있었습니다. 현재 업로드중인 디렉토리에 업로드 할 경우 발생할 수있는 보안 취약점에 대해 확신 할 수 없습니다. 다음은 이미지가 저장 될 경로입니다. htdocs/images/filenames.jpg. 이미지 업로드 디렉토리 보안
안전한 방식으로 이미지를 저장할 위치에 대해 알려주십시오.
이미지 업로드의 보안에 관한 많은 논란이 있었지만 우선은 644
디렉토리의 허가입니다. 다음으로 주석을 처리 할 필요가 있습니다. 타임 스탬프는 상당히 좋은 방법이지만 임의로 생성 된 값과 결합되거나 밀리 초를 포함하는 타임 스탬프를 사용해야합니다. 의미있는 이름을 사용하려면 사용자가 제공 한 이름을 삭제하고, null 바이트, 디렉터리 통과 및 기타 위험한 문자를 필터링해야합니다 (이미지 이름의 길이를 허용하거나 제한하거나 임의로 문자열을 생성합니다).
이미지를 웹 루트 외부에두기보다는 php_flag engine off
옵션이있는 .htaccess
을 사용하여 디렉토리에서 PHP 실행을 해제하는 것이 좋습니다. 또한 이미지를 웹 루트 외부에두면 이미지를 직접 액세스 할 수 없기 때문에 이미지를 제공하기 위해 PHP 스크립트를 사용하지 않는 한 <img>
태그에서 사용할 수 없습니다 (올바르게 구현 된 경우 매우 안전한 방법 임).
마지막으로 유효 이미지가 업로드되고 있는지 확인하려는 경우 일반적으로 GD
라이브러리가 사용됩니다. 구체적으로는 getimagesize
이며 올바른 이미지가 업로드 된 경우에만 이미지 크기를 반환합니다.
이미지 업로드 보안에 대해서도 topic을 확인하십시오.
현재 모든 이미지는 /htdocs/images/filename.png와 같은 웹 루트에 있습니다. 나는 AddHandler에의 CGI 스크립트 .PHP 통해 .pl 평 .jsp로 .ASP .HTM으로 shtml의 .sh가 .cgi 옵션 -ExecCGI이 이 충분합니다 & 또한 내가 다시 오전 다음 명령을 .htaccess 파일을 사용하고 있습니다 GD lib를 사용하여 이미지 크기를 조정하고 사용자의 원래 이미지를 삭제합니다. – codeGEN
폴더의 chmod를 644로 설정하고 timestamp와 같이 이미지의 이름을 바꾸면 – JTC
chmod가 644로 설정되어 있으면 사용자가이 디렉토리에 파일을 업로드 할 수있게됩니다. 여기 http : // www. draac.com/chmodchart.html 단어는 읽을 수만 있습니다. 또한 여러 사용자가 동시에 업로드 할 때 중복 타임 스탬프가있을 수 있습니다. – codeGEN
누군가가 PHP 파일이나 다른 실행 파일을 업로드 할 수 있다는 가정하에 보안 기능이 추가되었습니다. 웹 루트 외부에 업로드 디렉토리를두면 이러한 파일을 외부에 둡니다. 업로드 중에 디렉토리를 chmod 명령으로 755로 설정 한 후 나중에 644로 설정할 수 있습니다. – Daniel