테스트 사이트 - 개발 중인 베타 버전입니다

헤킹방어 - 이건 꼭 적용하세요.

· 7개월 전 · 938 · 11

헤킹방어 - 이건 꼭 적용하세요.

 

그누보드5는 구조적인 설계 때문에

data 디렉토리에 대하여 쓰기 권한을 열어줘야 합니다.

 

헤커가 어찌 어찌하여

data 디렉토리 안에 php 파일을 업로드 했더라도

실행을 못하게 하는 방법입니다.

 

nginx 기준

 

location ~ ^/tmp/.*\.(php|php5|pht)$ {

deny all;

}

 

location ~* ^/data/.*\.(php|php5|pht)$ {

deny all;

}

location ~ \.php$ {

이하생략

 

적용후 data 디렉토리에 phpinfo.php 파일 하나 만들어서 

위 환경설정 적용전과 적용후를 비교해 보시면 도움이 될거 같습니다.

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 11개

7개월 전

감사합니다 ^^

7개월 전

# 업로드 디렉토리 목록 (여러 개일 경우 |로 구분)
set $blocked_upload_dir 0;

if ($request_uri ~* "^/(data|tmp)/") {
    set $blocked_upload_dir 1;
}

# PHP 실행 확장자 (우회 확장자 포함)
location ~* \.(php|php[345]?|phtml|phar|pht|inc)$ {
    if ($blocked_upload_dir = 1) {
        return 403;
    }

    # 정상 PHP 처리
    include fastcgi_params;
    fastcgi_pass unix:/run/php/php8.2-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

좋은 팀 감사 드립니다.
하지만 저는 웹호팅을 받고 있어서 방법이 있나 AI에게 질문 했더니 아래와 같은 방법을 알려주네요. 저렇게 하면 하위 디렉토리도 적용되니 편할듯 합니다.
-----------------------------------------------------------------------------------
서버 설정 파일을 직접 수정할 수 없는 웹호스팅 환경이라면, .htaccess 파일을 이용하여 특정 디렉토리에서 PHP 실행을 막는 방법을 시도해볼 수 있습니다.

주의: 웹호스팅 환경에 따라 .htaccess 기능이 제한될 수 있으며, 설정 방법이 다를 수 있습니다. 호스팅 업체의 FAQ나 고객 지원을 통해 .htaccess 사용 가능 여부 및 설정 방법을 확인하는 것이 가장 좋습니다.

다음은 .htaccess 파일을 이용하여 /data 또는 /tmp 디렉토리에서 PHP 실행을 막는 방법입니다.

1. .htaccess 파일 생성 또는 수정:

  • 그누보드가 설치된 최상위 디렉토리 아래의 ./data 디렉토리로 이동합니다.
  • 이 디렉토리에 .htaccess 파일이 없다면 텍스트 편집기를 이용하여 파일을 새로 생성합니다. 파일 이름은 반드시 .htaccess 여야 합니다.
  • 파일이 이미 존재한다면 내용을 수정합니다.

2. PHP 실행 제한 코드 추가 (.htaccess 파일 내용):

다음 코드를 .htaccess 파일에 추가하고 저장합니다.

Apache

<FilesMatch "\.(php|php[0-9]*|phtml|phar)$">
    Order Deny,Allow
    Deny from all
</FilesMatch>
  • <FilesMatch "\.(php|php[0-9]*|phtml|phar)$">: 이 부분은 파일 이름이 .php, .php 뒤에 숫자가 붙는 확장자 (예: .php56), .phtml, .phar로 끝나는 파일들을 대상으로 설정을 적용하겠다는 의미입니다. 필요에 따라 다른 PHP 관련 확장자를 추가할 수 있습니다.
  • Order Deny,Allow: 접근 제어 순서를 설정합니다. 먼저 모든 접근을 거부(Deny)하고, 이후 특정 조건에 따라 허용(Allow)할 수 있도록 합니다.
  • Deny from all: 모든 IP 주소로부터의 접근을 거부합니다. 즉, 해당 확장자를 가진 파일에 대한 모든 요청을 차단하여 실행되지 않도록 합니다.

3. /tmp 디렉토리에도 동일하게 적용:

/tmp 디렉토리에서도 PHP 실행을 막고 싶다면, 위와 동일한 방법으로 ./tmp 디렉토리에 .htaccess 파일을 생성하거나 수정하고, 같은 내용을 추가합니다.

다른 방법 (덜 강력할 수 있음):

  • index.php 파일 생성: /data/tmp 디렉토리에 내용이 없는 빈 index.php 파일을 만들어두는 것도 일부 기본적인 실행을 막는 효과가 있을 수 있습니다. 하지만 직접적인 PHP 파일 접근까지 막지는 못할 수 있습니다.
  • 파일 업로드 시 확장자 제한: 그누보드 관리자 설정에서 허용되는 파일 확장자를 제한하여 PHP 관련 확장자 업로드를 원천적으로 차단하는 방법도 있습니다. 하지만 이는 이미 업로드된 악성 파일을 막지는 못합니다.

주의사항:

  • .htaccess 파일은 매우 강력한 기능을 제공하지만, 잘못된 설정을 하면 웹사이트 전체에 영향을 미칠 수 있습니다. 신중하게 작업하고, 적용 전에 반드시 백업을 해두는 것이 좋습니다.
  • 웹호스팅 환경에 따라 .htaccess 기능이 제한되거나 작동 방식이 다를 수 있습니다. 문제가 발생하면 호스팅 업체에 문의하여 도움을 받는 것이 좋습니다.
  • 이 방법은 PHP 파일 실행을 막는 것이지, 다른 종류의 악성 파일이나 공격까지 완전히 방어하는 것은 아닙니다.

결론적으로, 서버 설정 파일을 직접 수정할 수 없는 환경에서는 .htaccess 파일을 이용하여 /data/tmp 디렉토리에서 PHP 실행을 제한하는 방법을 시도해볼 수 있습니다. 하지만 웹호스팅 환경에 따라 제약이 있을 수 있으므로, 호스팅 업체의 지원을 확인하는 것이 중요합니다.
 

7개월 전

@우륵 감사합니다 ^^

7개월 전

이걸 어디에 넣어줘야 하나요?

7개월 전

좋은 팁 감사 합니다.

7개월 전

웹호스팅으로 서비스하는 경우엔 어떻게 해야하나 싶었는데 댓글에서 이미 정리해주신분이 계시네요 ^^ 감사합니다

7개월 전

좋은 정보 감사합니다. 추천 꾹~~

감사합니다.

감사합니다.

게시글 목록

번호 제목
23798
23797
23792
23791
23785
23781
23770
23766
23764
23761
23747
23732
23724
23718
23706
23700
23697
23686
23682
23681
23680
23678
23665
23644
23643
23639
23637
23630
23626
23616