헤킹방어 - 이건 꼭 적용하세요. 정보
헤킹방어 - 이건 꼭 적용하세요.본문
헤킹방어 - 이건 꼭 적용하세요.
그누보드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 실행을 제한하는 방법을 시도해볼 수 있습니다. 하지만 웹호스팅 환경에 따라 제약이 있을 수 있으므로, 호스팅 업체의 지원을 확인하는 것이 중요합니다.

@우륵 감사합니다 ^^

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

좋은 팁 감사 합니다.

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

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

감사합니다.

감사합니다.