회원가입 | 고객센터 |
DESIGNONEX
dxcms.kr
로그인 회원가입
고객센터
2. 시작 가이드

설치 시 보안 경로 구조

D DX
2026.04.20 23:57(수정됨) 128 0

1. 보안 경로 구조

1.1 설치마다 고유한 Secure.php 경로

설치 시 도메인 + microtime + 난수를 SHA-256으로 해시한 앞 16자리를 core/security/ 하위 폴더 이름으로 사용합니다. 이 경로를 DX_SECURITY_PATH 상수로 data/config.php에 저장하고, index.php는 매 요청마다 이 경로에서 Secure.php를 로드합니다.
 
# 구조 예시
core/
├── Secure.php               ← 원본 (폴백용)
└── security/
    └── a3f8b2c1d4e5f6a7/    ← 설치 고유 해시 (16자리)
        ├── Secure.php       ← 복사본 (실제 로드 대상)
        └── .htaccess        ← 직접 접근 차단


1.2 보안 경로의 목적

목적 설명
경로 예측 불가 공격자가 /core/Secure.php를 직접 공략해도 실제 동작 파일은 다른 경로에 존재
설치마다 고유 소스코드가 공개되어도 특정 설치 환경의 경로를 알 수 없음
보안 패치 용이 원본 core/Secure.php를 수정 후 관리자에서 경로 재생성 가능
폴백 안전망 security/ 경로 파일 없으면 core/Secure.php 폴백으로 서비스 중단 없음


1.3 data/config.php 생성 내용

설치 완료 후 data/config.php에 자동으로 생성되는 주요 내용입니다.
<?php
// DB 연결
$db = Database::getInstance();
$db->connect('localhost', 'db_name', 'user', 'pass', 'utf8mb4', 'dx_');

// 전역 설정 로드 (DxCache → DB 순 우선순위)
global $dx_config;
$dx_config = array();
// 1순위: 캐시에서 로드, 2순위: DB에서 로드 후 캐시 저장(300초)

define('DX_DEBUG', false);
define('DX_CHARSET', 'UTF-8');
date_default_timezone_set('Asia/Seoul');
define('DX_SECRET_KEY',   '64자리_랜덤_시크릿_키');
define('DX_SECURITY_PATH', 'a3f8b2c1d4e5f6a7');


2. 설치 후 체크리스트

2.1 보안 체크리스트

항목 확인 방법 조치
install/ 폴더 처리 /install/ 접속 시 403 또는 빈 페이지 폴더 삭제 또는 .htaccess로 차단
data/ 직접 접근 차단 /data/config.php 접속 시 403 .htaccess 및 web.config 확인
core/ 직접 접근 차단 /core/Secure.php 접속 시 403 .htaccess 확인
PHP 직접 실행 차단 /admin/index.php 직접 접속 시 403 또는 빈 페이지 .htaccess FilesMatch 확인
관리자 비밀번호 변경 기본 admin/admin 등 사용 여부 관리자 > 회원 관리에서 변경
DX_DEBUG 비활성화 config.php의 define('DX_DEBUG', false) 운영 환경에서 반드시 false
HTTPS 적용 https:// 접속 확인 SSL 인증서 설치 후 사이트 URL을 https://로 변경


2.2 동작 확인 체크리스트

확인 항목 테스트 방법
홈페이지 정상 표시 브라우저에서 / 접속
관리자 로그인 /admin 접속 후 설치 시 입력한 계정으로 로그인
게시판 생성 및 글쓰기 관리자 > 게시판 관리에서 게시판 생성 후 글 작성
파일 업로드 글쓰기에서 파일 첨부 후 저장
회원가입 /auth/register 접속 후 가입 시도
URL Rewrite 동작 /admin 형태의 깔끔한 URL로 접속 가능한지 확인
캐시 동작 관리자 > 설정에서 캐시 드라이버 확인 (FILE/APCU/REDIS)
사이트맵 /sitemap.xml 접속 시 XML 출력 확인


2.3 성능 최적화 권장사항

항목 권장 설정 효과
PHP OPcache opcache.enable=1 PHP 파일 컴파일 캐시. 응답 속도 대폭 향상
APCu 또는 Redis DxCache 드라이버 자동 선택 DB 쿼리 감소 (설정 캐시 300초)
MySQL 쿼리 캐시 query_cache_type=1 (MySQL 5.x) 반복 쿼리 캐시
FULLTEXT 인덱스 ft_min_word_len=2 (my.cnf) 2자 이상 검색어 지원
gzip 압축 gzip on (Nginx) / mod_deflate (Apache) HTML/JS/CSS 전송 크기 감소
HTTP/2 웹 서버에서 활성화 다중 자원 병렬 전송 성능 향상

댓글0

로그인 후 댓글을 작성할 수 있습니다.
7. 테마 DXCMS 테마 개발 AI 프롬프트 스킬과 멀티사이트 체험 2026.05.23 6. 게시판 DXCMS 게시판 스킨 만들기 Prompt Skill 2026.05.23 16. 이슈 가이드 막코딩 필수 규칙 2026.05.21 16. 이슈 가이드 그누보드의 `_common.php` 처럼, `dx_load.php` 한 줄로 DXCMS의 모든 기능을 사용하는 방법입니다. 2026.05.21 15. 마켓 개발자 가이드 마켓 다운로드 보호 설정 가이드 2026.05.20 6. 게시판 게시판 여분 필드 (Board Extra Fields) 사용 가이드 2026.05.19 14. 데이터베이스 Database 직접 쿼리 개발 2026.05.19 14. 데이터베이스 DB스키마 2026.05.12 13. 보안 기본 보안 구조 2026.05.10 12. 성능 / 최적화 트래픽 대응 2026.05.10 12. 성능 / 최적화 정적 리소스 관리 2026.05.10 12. 성능 / 최적화 캐싱 전략 2026.05.10 11. 인증 / 로그인 시스템 세션 처리 구조 2026.05.10 11. 인증 / 로그인 시스템 인증 흐름 2026.05.10 11. 인증 / 로그인 시스템 소셜 로그인 2026.05.10 11. 인증 / 로그인 시스템 일반 로그인 2026.05.10 10. 마이페이지 마이페이지 구조 2026.05.10 9. 채팅 채팅 제작 2026.05.10 9. 채팅 채팅 구조 2026.05.10 3.8 Extend 구조 Extend 실제 소스 코드 완전 분석 • 12가지 실전 사례 2026.05.02
31
전체 회원
503
전체 게시글
770
전체 댓글
442
오늘 방문
33,173
전체 방문
3
현재 접속
인기글 7일 이내
최신글
최신댓글
목록