웹마스터 팁

※ 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]


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

제목 글쓴이 날짜
확장변수 출력 방법 초 심플하게 적어봅니다. [15] 라르게덴 2009.03.16
각종 스킨 파일 보호 하기 (HTML 소스 보기 방지법) [18] 퍼니엑스이 2009.03.16
제로보드에서 아이프레임(iframe) 높이 자동조절(파폭,IE, 모두 작동) [10] HaruKaze 2009.03.17
추천 비추천 레벨 권한 [4] 한이73 2009.03.17
관리자 페이지 (module=admin) 백지 문제 [5] 개돌 2009.03.17
XE DB 백업한거 복원 하기 [2] 라르게덴 2009.03.17
1.2.0 설치 후 페이지모듈에 위젯사용시 문제 [2] Digitalife 2009.03.17
브라우저 크기에 따라 본문 가로 크기 자동 조절 [1] 개돌 2009.03.18
페이지모듈에서 내용직접추가할때 "본문내이미지조절" 애드온 적용하기 [5] 왜만지냐 2009.03.19
왕초보용 xe 1.2.0 버전 사용 기본 레이아웃 좌측에 배너 삽입 방법. [7] 『june™』 2009.03.20
미국 야후 호스팅 쓰시는 분들 보세요(이미지 퍼미션) 텍사수 2009.03.21
제로보드 XE나 개인 블로그에 GPS 로그(궤적)를 나타낸 구글맵 삽입하기 상오기 2009.03.21
1.2.0 업뎃후 위젯 문제 [1] ♡不明♡ 2009.03.22
제로보드의 아이콘을 내 맘대로 변경하기...(1) [3] file winter548 2009.03.23
제로보드의 아이콘을 내 맘대로 변경하기...(2) [2] file winter548 2009.03.23
각종 좌절 금지 그림들 [2] file winter548 2009.03.23
(CSS) IE8용 웹조각 기능 file Simulz 2009.03.26
글 읽을 때마다 조회수 증가하는 법 알려주세요 [1] 홍정환873 2009.03.27
로그인 포인트 출력 위젯을 수정해보자 [花穗] 2009.03.27
제로보드 권한 설정 문제요~~ [1] 매너굿남 2009.03.27