웹을 개발하다보면 index.php 죽이기라는 말을 많이들 들어봤을 것이다.
처음 index.php 죽이기를 접했을 시 이게 무슨 말이지? 하였지만 막상 사용하고 보니 이해가 되었다.
index.php 란 쉽게 말해 말 그대로 index.php 자체를 없애고 내부적으로는 index.php 에서 모든걸 처리한다는 뜻이다.
그런데 말입니다. index.php 를 죽이는데 index.php 에서 모든걸 처리한다고?? 여기서 이건 뭔 개똥같은 소리지 할 수 있다.
좀더 저세히 설명하자면 통상 Apache 에서 도메인만 있을 경우 우리는 index.php 또는 index.html 을 Default 로
설정해 놓는데, 이 이유때문인지 index.php 를 중점으로 명칭이 불려온것같다.
사실상 .htaccess 에서 설정에 따라 index.php 를 idx.php 로 변경하면 idx.php 죽이기가 되니
이런걸로 크게 궁금해 할 이유는 없다고 생각한다.
.htaccess |
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond $1 !^(index\.php|favicon\.ico|.well-known|robots\.txt)
RewriteRule ^(.*)$ index.php [L,QSA]
</IfModule>
본 설정은 실제 내가 운영하는 사이트중 가장 간단하게 설정된 사이트의 .htaccess 설정이며 붉은색으로 표시된 index.php 의 경우
위에서 언급했지만 idx.php 로변경시 idx.php 파일 죽이기로 명칭을 바꿀 수 있다는 말이다.
다만 이설정을 위해서는 Apache 에서도 설정이 필요하다.. 이설정은 서버마다 다를 수 있어.. (사실 서버는 내가 약하다.)
암튼 중요 포인트만 집고 넘어간다.
Apache 설정 중요포인트 |
1. httpd.conf 에서 찾을 구문 => AllowOverride None 변경할 구문 => AllowOverride All
2. 추가로 아래와 같은 코드 추가 (.ht 로 시작하는 파일을 url 에서 접근못하도록 처리 - 이게 안되면 해커의 표적이 됨)
|
2번과 같이 반드시 .htaccess 로 URL 접근이 불가능하도록 처리해 주는게 가장 큰 포인트이다.
간혹 저 설정없이 사용하는 고객사 서버를 보면 정말 한숨만 나온다.
나름 서버전문가와 함께 구축을 했다고는 하지만, 웹 지식이 전혀 없는 서버 전문가와 함께 하다보니
웹사이트 운영의 중요포인트를 놓치고 가는 경우가 많다.
뭐 요즘은 프레임워크가 워낙 잘되어있어, PHP 뿐만 아니라 서버설정까지 전부 매뉴얼화 되어있기에
보안이슈가 많이 없어지긴 했다.
다음편에서는 시간이 된다면 보안을 다뤄보고 싶다만 정말 귀찮다.. 보안으로 포스팅 하다보면 끝도 없을 것 같다.