웹마스터 팁

※ XE 1.5.3.1부터는 적용이 되어 있으니 해당 사항이 없습니다.


안녕하세요. 퍼니엑스이입니다. 사실 오래전에 작성했던 글인데 어느순간 알림이 와서 보니 -수정중- 이라고 적어놓고 오랫동안 수정을 안해놨더라고요ㅠㅠ 그래서 오랜만에 긴 글도 써볼겸 잠깐 시간내서 다시 써보았습니다.


XE의 스킨은 HTML 파일을 작성하는 방식으로 만들어지고 있습니다. 게시판 스킨을 포함해서 레이아웃 스킨 등 PHP 구문을 직접 사용할 필요가 없는 곳 모두가 이에 해당합니다. 흔히 스킨에 새로운 기능을 추가하기 위해 공개된 스킨을 그대로 수정하는데요, 공개된 스킨인 만큼 스킨폴더 주소가 널리 알려져 있습니다. 공개된 스킨이 아니더라도 그래서 다른 분들이 스킨 파일이 위치한 경로를 유추해서 스킨 파일을 그대로 가져갈 수도 있고요. 


자세한 설명을 위해 XE 공식 사이트의 소스의 일부분을 그대로 가져와서 보여드리겠습니다.


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="ko" xmlns="http://www.w3.org/1999/xhtml">
<head>
<!-- META -->
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />	<meta name="Generator" content="XpressEngine" />
<!-- TITLE -->
	<title>자유게시판</title>
<!-- CSS -->
	<link rel="stylesheet" href="http://static.xpressengine.com/core/highway/common/js/plugins/ui/jquery-ui.css" type="text/css" media="all" />
	<link rel="stylesheet" href="http://static.xpressengine.com/core/highway/common/css/xe.min.css" type="text/css" media="all" />
	<link rel="stylesheet" href="/layouts/xe_v3_sub/xe_v3_sub.css?20120409161721" type="text/css" media="all" />
	<link rel="stylesheet" href="/modules/board/skins/xe_v3_default/xe_v3_default.css?20120312182905" type="text/css" media="all" />
	<link rel="stylesheet" href="/modules/editor/styles/default/style.css?20120305094452" type="text/css" media="all" />
	<link rel="stylesheet" href="/files/faceOff/928/328/019/layout.css?20121025141752" type="text/css" media="all" />
	<link rel="stylesheet" href="/modules/ncenter/skins/default/ncenter.css?1.5.3.3.20120706.css" type="text/css" media="all" />
	<link rel="stylesheet" href="/modules/ncenter/skins/default/ncenter.black.css?1.5.3.3.20120706.css" type="text/css" media="all" />

12번째 라인을 보면 /modules/board/skins/xe_v3_default/xe_v3_default.css?20120312182905라는 부분이 있습니다.

이걸로 봐서 공식 사이트에서는 xe_v3_default라는 게시판 스킨을 사용하고 있다는 것을 알 수 있습니다.

다른 사이트에 가더라도 /modules/board/skins/로 시작하는 부분을 찾으면 스킨 폴더를 손쉽게 찾을 수 있고 이를 통해 손쉽게 스킨 파일을 가져올 수 있습니다.


만약, xe_v3_default라는 스킨의 목록 소스를 가져오려면 어떻게하면 될까요? (실제로 xe_v3_default 스킨은 게시판 모듈의 공식 배포본에 포함되어 있습니다^^ 굳이 받으려고 애쓰지 않으셔도 됩니다.)


http://www.xpressengine.com/modules/board/skins/xe_v3_default/list.html


위 주소로 접근을 하면 뭔가 깨진 화면이 보이는군요. 네, 이 부분이 게시판 목록 부분입니다. 이것을 XE에서 해석해서 화면에 보여주기 때문에 이쁘장한 게시판을 볼 수 있는거죠ㅎㅎ


소스 보기를 해보시면 소스가 보인다는 것을 아실 겁니다. 부디 이 글을 보고 악용하는 분이 없었으면 좋겠습니다.


그럼 어떻게 하면 소스 보기를 막을 수 있을까요? 방법은 간단합니다.


첫번째 방법

해당 스킨 파일 상단에 아래와 같은 코드를 넣으면 됩니다.


<?php if(!defined('__ZBXE__') && !defined('__XE__')) exit(); ?>


XE는 보안문제로 스킨에서 PHP 구문을 직접 사용하는 것을 권장하지 않고 있습니다만, 사용이 가능하기에 이 방법을 사용하는 것입니다.


다만, 스킨 파일이 많을경우 일일이 다 넣어주어야 합니다.


두번째 방법

위의 방법대로라면 모든 파일을 수정해줘야 하기 때문에 상당히 불편합니다.

.htaccess를 사용하면 쉽게 차단할 수 있더라고요. XE 1.5.3.1부터는 적용이 되어 있으니 해당 사항이 없습니다.


먼저 XE 설치 폴더에 있는 .htaccess 파일을 찾아서 에디터로 열어주세요.

그런 다음 아래와 같은 부분을 찾습니다.


# reserve XE Layout Template Source File (*.html)

RewriteRule ^(layouts|m.layouts)/(.+)\.html$ - [L,F]


그 밑에


# reserve XE Template Source Files (*.html)

RewriteRule /(skins|m.skins)/(.+)\.html$ - [L,F]


위 소스를 넣어주시면 됩니다.

제목 글쓴이 날짜
XE 다국어로 페이지/글 작성하기 [4] jhrun 2012.11.05
XE를 홈페이지 루트에 설치하여 BGM 설치가 불가능할 때... [6] Firstlove 2011.05.29
자신의 홈페이지에 웹문서 검색엔진 장착하기 [4] 지하넷 2009.05.04
XE를 아주 간편하게 루트로 옮기기. [23] file LI-NA 2013.02.23
출석부 소시랑 스킨 출석회원없을때 우측위젯이 아래로 떨어지는 현상 해결방법 [3] garnecia 2013.02.23
XE 1.4.X 용 nginx rewrite rule 입니다! (xzet 1.4 기준) CM(OEZ) 2013.02.21
XE 1.5.X 용 nginx rewrite rule 입니다! CM(OEZ) 2013.02.21
글 쓸때 SSL 적용하기 [3] 빛의바다 2013.01.01
각종 스킨 파일 보호 하기 (HTML 소스 보기 방지법) [18] 퍼니엑스이 2009.03.16
Content (and확장) 위젯에서 추출대상 첨부이미지일 경우 카테고리명 및 이미지+제목 형식 섬네일 표시 못하는 문제 으흥 2013.02.17
아이콘샵 모듈 이용해서 대표 아이콘 사용시 레벨 아이콘 나오지 않게 하기 [4] 하은이아빠 2012.10.01
팝업창 자동 사이즈 조절 js Alex 2013.02.17
방명록 모듈 1.5.1.1에서 비회원이 남긴글 삭제하기 조슈아킴 2013.02.14
호스팅비 돈아낍시다. 하나의 XE 다중 도메인 사용하기. [10] kimnada 2010.12.02
코멘트를 달아야만 첨부파일 다운로드 할 수 있게 하기 [8] file 지오426 2008.07.29
SMTP 인증 회원가입 메일 인증 , 비밀번호 오류찾기 및 답변글 메일로 받기 [11] file FFHosting 2009.01.12
이미디오 (이미지->동영상) 기능을 적용해보자. [8] file asterisk 2013.02.12
[Css]필터 관련 스타일시트 속성 [1] 웹엔진 2011.04.13
흥미로운 AND, OR 조건문 엘카 2013.02.10
PHP_5_IF 문과 기본 연산자 [1] 아무흐 2008.03.26