php html 파일에서 php 구문 숨기기

2010.05.17 08:17

Elkha 조회 수:6861

참고 문서  

php 노출

html.png 일반적으로 .html 파일을 열면 php 소스가 그대로 노출된다.
보안에 문제가 있다는 뜻은 아니지만, 외부 방문자에게 소스가 노출되는건 썩 내키지 않는다.

웹 서버 설정

Lighttpd

나는 Lighttpd 웹 서버를 사용하기 때문에 /etc/lighttpd/lighttpd.conf 파일을 수정했다.
웹서버의 php 확장기능을 적용할 파일의 확장자를 추가하면 된다.

# static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi", ".html" )

php.png위와 같이 바꾸고 나서 php 소스가 있는 파일로 액세스를 시도해봤다.
그랬더니 403 에러가  뜨더라 -ㅅ-
에러페이지를 의도한건 아니지만 원래 목적은 달성했으니 그걸로 만족한다.

Apache

내가 구축한 Apache 서버는 어차피 html 파일에서도 php 구문이 적용되길래 별 소용이 없었다.
만약 php 구문이 노출된다면 .htaccess 파일을 수정하면 된다.

AddType application/x-httpd-php .html
AddHandler x-httpd-php .html

http://www.starhost.co.kr/xe/108879

테스트해보니 페이지는 뜨지 않고 html 파일을 저장하겠냐고 나오더라.
하여튼 상상을 뛰어넘는 오묘한 세계다 ㅡ,.ㅡ;
덧: 루트 .htaccess 파일을 수정하는 것 보다, 접근을 원치않는 경로에 .htaccess 파일을 생성해서 작성하는게 적절할 것이다.

장점과 단점

소스를 숨기는 효과뿐만 아니라 어느 html 파일에서나 php 구문을 적용할 수 있다.
글쎄.. 단점이 있는지 모르겠지만 본의 아니게 html 파일에서 쓸데없는 php 호출이 발생할지도?
아무튼 php 구문은 가급적 .php 파일에서 처리하는게 좋다.

기타

당연한 얘기지만 XE 템플릿에서 사용하는 { } 문법은 그대로 노출되더라.
곰곰히 생각해보니 웹서버의 rewrite 모듈을 사용해서 디렉토리를 우회하는 게 더 괜찮은 방법인듯?

번호 제목 날짜 조회 수
81 검색엔진 등록 file 2010.05.12 142341
80 VPS (가상 호스팅) 비교 file 2010.05.12 62201
79 마인크래프트 조합법 1 file 2011.04.01 38374
78 CentOS 6 - Apache 2.4.1 컴파일 / 보안 설정 [1] 2012.04.15 30240
77 리눅스 계정 생성/변경 [67] 2011.04.02 29129
76 Linux Memory 사용량 file 2012.05.16 25005
75 CentOS 6 - MySQL 5.5 설치 [1] file 2012.04.15 21725
74 Lighttpd 설치 file 2010.05.11 20679
73 sAPM file 2010.05.12 20261
72 php + ssh2 file 2010.06.05 20199
71 Linux 설치시 파티션 관리 file 2012.05.12 19206
70 Zend Optimizer + eAccelerator + Suhosin file 2010.05.11 18249
69 MySQL 설치 file 2010.05.11 17280
68 CentOS 6.2 다운로드 / 설치 [1] file 2012.04.15 17029
67 Apache 설치 file 2010.05.11 16658
66 ssh 로그인 제한 2011.04.05 16470
65 리눅스 자동 시작 file 2010.05.21 15895
64 ftp file 2010.07.23 15443
63 솔라리스 mount options 2013.10.06 15323
62 PHP 설치 file 2010.05.11 15057