웹마스터 팁

※ 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를 git으로 변환하기 [6] 기진곰 2015.02.25
나눔고딕 웹 폰트 적용하기. [10] 정찬명 2011.12.15
[펌] HTML5와 CSS3를 사용하여 최신 웹 사이트 구축하기 [6] file 999 2011.01.11
APM에서 XE 설치시 깨짐현상 발생될때... file 비밀M 2013.05.14
각종 스킨 파일 보호 하기 (HTML 소스 보기 방지법) [18] 퍼니엑스이 2009.03.16
1.5.x 버전에서 migration tool 동작불가 문제 [1] 모노소프트 2012.01.13
XE 프로젝트 호스팅 SVN 내용을 Google 프로젝트 호스팅으로 이전하기 file 난다날아 2011.05.17
제로보드 XE - 오토셋에 설치하기 [11] file 차오이 2007.08.11
Ubuntu 웹서버 구축 3. ZBXE 설치 [22] [1] earthian 2008.05.23
SVN Commit 정보 출력 설정 (CIA Script) DroArc 2007.11.25
HTML 암호화시킨것 풀어주는소스(암호화도가능) [11] 호호짱 2003.05.06
서버에서 zeroboard XE 쉽게 다운로드 받고 업데이트 하기 [2] Dr.Mabin 2007.08.13
윈도우에서도 svn을 이용하자.. [2] LSH5243 2007.08.13
윈도우서버에 설치된 XE에서 이슈트래커의 코드열람 사용시 proc_open 함수 에러가 발생 할때. [1] file Na5key 2010.07.08
하늘님의 XE svn external link로 update하기를 이해 하기 쉽게 (그림첨부) [12] file Habile 2009.08.23
www가 붙는 도메인과 그렇지 않은 도메인 하나로 처리하기 [8] 똑디 2008.01.18
XE svn external link로 update하기 [7] 하늘03 2009.08.09
SVN 의 사용 방법 [3] preware 2007.11.06
리눅스 호환 호스팅에서 zbxe 전체 업로드 후 디렉토리 이동시키기... [4] 소마세월 2008.02.02
(위젯) 이미지 클라우드 스킨 사용 법 [2] file Simulz 2008.06.06