[보안]PHP 파일 업로드기능으로 업로드된 임의의 파일 실행 취약점 해결
페이지 정보
본문
PHP는 리모트 브라우저로부터 파일 업로드기능을 쉽게 제공합니다.
대개의 경우 자바스크립트등을 이용하여 특정 확장자의 화일업로드를 막는게 대부분입니다.
하지만 업로드되는 디렉토리의 퍼미션이 대개 777 또는 770로 설정되기
때문에 안심할 수 만은 없을것입니다...PHP로 얼마나 많은 일을 할 수 있습니까...이것이 PHP의 장점이자 단점이기도 하지요...
하지만 꾸준한 패치 및 부지런함이 가능하다면 PHP는 더할나위없이 강력한 script임에 틀림 없을 것입니다.
[해결책]
예를 들어 /home/php/public_html/upload 라는 디렉토리에 업로드한 화일을 저장하도록 설정되어 있을 경우, 악의적인 사용자가 업로드한 php 스트립트도 그 디렉토리에 저장되게 될 것입니다.
이때, 그 디렉토리에서 php 스크립트가 실행되지 않도록 할 수 있습니다.
아파치의 httpd.conf 설정화일을
PHP3의 경우에는
<Directory "/home/php/public_html/upload">
php3_engine off
</Directory>
PHP4의 경우에는
<Directory "/home/php/public_html/upload">
php_admin_flag engine off
</Directory>
이렇게 추가한다음 아파치를 다시 실행시키면 됩니다.
그럼, 그디렉토리의 스크립트에 존재하는 어떤한 php(명령)도 실행되지 않으며, 단순한 텍스트화일로 취급된다. 화면이 .txt처럼 쭉 뿌린답니다.
[[[[발췌 : 한국정보보호센터 ]]]
-----------------------------------------
다음카페..."나 php 공부한다~*"의 냉박사님글발췌
대개의 경우 자바스크립트등을 이용하여 특정 확장자의 화일업로드를 막는게 대부분입니다.
하지만 업로드되는 디렉토리의 퍼미션이 대개 777 또는 770로 설정되기
때문에 안심할 수 만은 없을것입니다...PHP로 얼마나 많은 일을 할 수 있습니까...이것이 PHP의 장점이자 단점이기도 하지요...
하지만 꾸준한 패치 및 부지런함이 가능하다면 PHP는 더할나위없이 강력한 script임에 틀림 없을 것입니다.
[해결책]
예를 들어 /home/php/public_html/upload 라는 디렉토리에 업로드한 화일을 저장하도록 설정되어 있을 경우, 악의적인 사용자가 업로드한 php 스트립트도 그 디렉토리에 저장되게 될 것입니다.
이때, 그 디렉토리에서 php 스크립트가 실행되지 않도록 할 수 있습니다.
아파치의 httpd.conf 설정화일을
PHP3의 경우에는
<Directory "/home/php/public_html/upload">
php3_engine off
</Directory>
PHP4의 경우에는
<Directory "/home/php/public_html/upload">
php_admin_flag engine off
</Directory>
이렇게 추가한다음 아파치를 다시 실행시키면 됩니다.
그럼, 그디렉토리의 스크립트에 존재하는 어떤한 php(명령)도 실행되지 않으며, 단순한 텍스트화일로 취급된다. 화면이 .txt처럼 쭉 뿌린답니다.
[[[[발췌 : 한국정보보호센터 ]]]
-----------------------------------------
다음카페..."나 php 공부한다~*"의 냉박사님글발췌
- 이전글PHP fopen()에대한 심각한 보안문제 21.02.09
- 다음글문자들중에서 특정한 문자의 갯수 찾기 21.02.09
댓글목록
등록된 댓글이 없습니다.