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 모듈을 사용해서 디렉토리를 우회하는 게 더 괜찮은 방법인듯?

번호 제목 날짜 조회 수
61 Table 태그 file 2010.05.23 4443
60 php + ssh2 file 2010.06.05 20200
59 javascript 대기시간 - setTimeout file 2010.06.12 13144
58 ftp file 2010.07.23 15443
57 네이버 드래그, 마우스 우클릭 방지 해제 file 2010.07.25 3621
56 브라우저, 문서 높이 구하기 2010.08.17 3947
55 <table cellspacing="0"> 2010.08.19 5486
54 마인크래프트 다운로드 v1.4 2011.04.01 3371
53 접속하기전에.. 2011.04.01 2342
52 마인크래프트 조합법 1 file 2011.04.01 38377
51 마인크래프트 조합 2 file 2011.04.01 14473
50 리눅스 계정 생성/변경 [67] 2011.04.02 29129
49 ssh 로그인 제한 2011.04.05 16470
48 php 생성자 / 소멸자 2011.05.21 7569
47 php __get($name), __set($name, $value) 2011.05.21 7494
46 CentOS 6.2 다운로드 / 설치 [1] file 2012.04.15 17029
45 CentOS 6 - MySQL 5.5 설치 [1] file 2012.04.15 21737
44 CentOS 6 - Apache 2.4.1 컴파일 / 보안 설정 [1] 2012.04.15 30240
43 CentOS 6 - PHP 5.3.10 컴파일 / 보안 [1] 2012.04.15 14286
42 CentOS 6 PHP 5.3 - APC(Alternative PHP Cache) 3.1.9 2012.04.15 11369