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

2010.05.17 08:17

Elkha 조회 수:6860

참고 문서  

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 MySQL 설치 file 2010.05.11 17278
80 Apache 설치 file 2010.05.11 16656
79 PHP 설치 file 2010.05.11 15056
78 Zend Optimizer + eAccelerator + Suhosin file 2010.05.11 18247
77 Lighttpd 설치 file 2010.05.11 20677
76 sAPM file 2010.05.12 20260
75 VPS (가상 호스팅) 비교 file 2010.05.12 62200
74 검색엔진 등록 file 2010.05.12 142340
» html 파일에서 php 구문 숨기기 file 2010.05.17 6860
72 php 현재 시각 출력하기 file 2010.05.17 4458
71 php 암호화와 복호와 file 2010.05.17 7305
70 파일 불러오기 file 2010.05.17 5471
69 php 에서 텍스트 파일을 생성, 수정하기 file 2010.05.19 9922
68 php 쿠키 생성, 읽기 file 2010.05.19 7103
67 jQuery 쿠키 file 2010.05.19 5016
66 list-style file 2010.05.21 5154
65 php 에서 파일 권한 설정 2010.05.21 4593
64 putty file 2010.05.21 13464
63 리눅스 자동 시작 file 2010.05.21 15892
62 포커스 요소의 테두리와 웹 접근성 file 2010.05.23 4179