헤킹방어 - 이건 꼭 적용하세요. > 그누보드5 팁자료실

그누보드5 팁자료실

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

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

본문

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

 

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

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

 

헤커가 어찌 어찌하여

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

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

 

nginx 기준

 

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

deny all;

}

 

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

deny all;

}

location ~ \.php$ {

이하생략

 

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

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

추천
13

댓글 10개

# 업로드 디렉토리 목록 (여러 개일 경우 |로 구분)
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 실행을 제한하는 방법을 시도해볼 수 있습니다. 하지만 웹호스팅 환경에 따라 제약이 있을 수 있으므로, 호스팅 업체의 지원을 확인하는 것이 중요합니다.
 

전체 2,672 |RSS
그누보드5 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT