php 파일 실행되지 않도록 설정

Yeeees, I can!·2022년 9월 13일
0

특정 업로드 공간에 웹쉘파일 업로드로 인해 해킹이 일어나지 않도록
해당 공간의 파일들중 php형태는 실행되지 않도록 설정할 수 있다

옵션명 : php_flag engine off

테스트진행

1. 우선 apache document 경로에, data경로를 생성한다 ,

해당 경로안에 php파일을 생성하여 웹에서 호출해본다

[root@testsrv /opt/apache/htdocs]# mkdir data
[root@testsrv /opt/apache/htdocs/data]# cat test.php 
<?php
phpinfo();
?>
[root@testsrv /opt/apache/htdocs/data]# 

2.호출 시도

php파일이 인식되어 정상 호출이 된다

3.아파치 내부 설정에 특정 경로에 대해서 flag off 처리 진행

<Directory "/opt/apache/htdocs/data">
    AllowOverride None
    php_flag engine off
    Require all granted
</Directory>

php_flag engine off 옵션을 넣게되면, 해당 경로의 php파일은 인식되지 않는다
단, mime 에 "application/x-httpd-php .php .php3 .php4 .html .htm .inc" 값을 타지 php형식을 인식하지 못해 브라우저에서 다운로드 표시가 나오게된다.

다른 방안

<Directory "/opt/apache/htdocs/data">
    AllowOverride None
    Require all granted
    AddType text/plain .php .php3 .php4 .html .htm .inc
</Directory>

확장자로 지정해서 plain타입으로 하여 php 인식되지 않도록 할 수도 있다

디렉토리명으로 지정해서 제한하는 법
아래처럼 하면 디렉토리명이 data,upload 이면 php인식하지 않는다

<Directory ~ "(data|upload)">
    AllowOverride None
    Require all granted
    AddType text/plain .php .php3 .php4 .html .htm .inc
</Directory>

다른 경로는 호출이 정상처리된다

apache 로 웹서버 구성시, 위와 같이 업로드 공간에 php파일 인식을 되지 않게하면
웹쉘 공격등을 피할 수 있다.

profile
그동안 경험 및 공부하면서 얻은 지식을 써놓은 블로그입니다~

0개의 댓글