🔐로그인하면 문서 작성, 프로젝트 게시, ZIP 기반 버전 업로드, 브랜치 생성 기능을 사용할 수 있습니다. 로그인하러 가기
비교 대상 선택
추가 0줄 삭제 0줄 변경 0줄 동일 77줄
r1 파일 가져오기: 74-security-guide.md
2026-04-17 14:54

보안·신뢰성 운영 가이드

T2Editor는 단순한 텍스트 입력기라기보다 파일 업로드, 외부 API 호출, HTML 렌더링, 코드 블록 표시, 단축 URL 생성 같은 기능을 함께 다루는 복합 시스템입니다. 따라서 실제 운영에서는 “에디터가 뜬다”는 것만으로 충분하지 않고, 업로드 보안과 출력 보안, 외부 서비스 장애 대응까지 함께 준비해야 합니다.

초보자와 웹마스터를 위한 핵심 점검

가장 먼저 볼 것은 업로드 정책입니다. 이미지와 파일 업로드가 가능한 구조라면 허용 확장자와 용량 제한이 반드시 명확해야 합니다. 여기에 더해 업로드 디렉터리를 웹 루트 아래에 둘 것인지, 직접 실행이 불가능한 경로로 둘 것인지도 검토해야 합니다.

다음으로 중요한 것은 외부 서비스입니다. AI, T2Search, ClipURL처럼 DSclub이나 외부 API를 사용하는 기능은 편리하지만, 운영 중단이나 호출 제한에 영향을 받습니다. 사이트 특성상 꼭 필요하지 않다면 초기에 비활성화하는 편이 더 안전할 수 있습니다.

전문 개발자를 위한 보안 포인트

업로드 보안

  • 확장자만 보지 말고 MIME 검사와 파일명 정규화를 함께 적용합니다.
  • 이미지 변환(WebP 등) 과정에서 예외가 발생해도 원본 파일이 무방비하게 남지 않도록 처리합니다.
  • 업로드 디렉터리에서 PHP 실행이 가능하지 않도록 서버 설정을 별도로 확인합니다.

출력 보안

  • 코드 블록은 반드시 “텍스트로 렌더링”되어야 하며, HTML로 평가되지 않아야 합니다.
  • 보기 페이지에서 에디터가 만든 HTML을 어느 수준까지 허용할지 정책을 분리합니다.
  • 커스텀 플러그인이 raw HTML을 삽입한다면 보기 스킨에서의 필터 정책까지 함께 문서화해야 합니다.

외부 API 보안

  • API 키, 공유 비밀값, 도메인 서명 같은 정보는 클라이언트 코드에 직접 노출하지 않는 것이 원칙입니다.
  • CORS 허용 범위를 넓힐 때는 실제 호출 도메인만 허용하도록 제한합니다.
  • 장애 시 무한 재시도나 UI 멈춤이 발생하지 않도록 예외 처리와 타임아웃을 둡니다.

운영 체크리스트

  • 업로드 허용 확장자 최소화
  • data, collab 디렉터리 권한 최소화 원칙 검토
  • 보기 페이지 XSS 점검
  • 외부 API 장애 시 대체 문구 또는 비활성화 흐름 준비
  • 라이선스 파일과 설정 파일 백업
  • 업데이트 전후 보안 회귀 테스트 수행

참고 자료

r1 파일 가져오기: 74-security-guide.md
2026-04-17 14:54

보안·신뢰성 운영 가이드

T2Editor는 단순한 텍스트 입력기라기보다 파일 업로드, 외부 API 호출, HTML 렌더링, 코드 블록 표시, 단축 URL 생성 같은 기능을 함께 다루는 복합 시스템입니다. 따라서 실제 운영에서는 “에디터가 뜬다”는 것만으로 충분하지 않고, 업로드 보안과 출력 보안, 외부 서비스 장애 대응까지 함께 준비해야 합니다.

초보자와 웹마스터를 위한 핵심 점검

가장 먼저 볼 것은 업로드 정책입니다. 이미지와 파일 업로드가 가능한 구조라면 허용 확장자와 용량 제한이 반드시 명확해야 합니다. 여기에 더해 업로드 디렉터리를 웹 루트 아래에 둘 것인지, 직접 실행이 불가능한 경로로 둘 것인지도 검토해야 합니다.

다음으로 중요한 것은 외부 서비스입니다. AI, T2Search, ClipURL처럼 DSclub이나 외부 API를 사용하는 기능은 편리하지만, 운영 중단이나 호출 제한에 영향을 받습니다. 사이트 특성상 꼭 필요하지 않다면 초기에 비활성화하는 편이 더 안전할 수 있습니다.

전문 개발자를 위한 보안 포인트

업로드 보안

  • 확장자만 보지 말고 MIME 검사와 파일명 정규화를 함께 적용합니다.
  • 이미지 변환(WebP 등) 과정에서 예외가 발생해도 원본 파일이 무방비하게 남지 않도록 처리합니다.
  • 업로드 디렉터리에서 PHP 실행이 가능하지 않도록 서버 설정을 별도로 확인합니다.

출력 보안

  • 코드 블록은 반드시 “텍스트로 렌더링”되어야 하며, HTML로 평가되지 않아야 합니다.
  • 보기 페이지에서 에디터가 만든 HTML을 어느 수준까지 허용할지 정책을 분리합니다.
  • 커스텀 플러그인이 raw HTML을 삽입한다면 보기 스킨에서의 필터 정책까지 함께 문서화해야 합니다.

외부 API 보안

  • API 키, 공유 비밀값, 도메인 서명 같은 정보는 클라이언트 코드에 직접 노출하지 않는 것이 원칙입니다.
  • CORS 허용 범위를 넓힐 때는 실제 호출 도메인만 허용하도록 제한합니다.
  • 장애 시 무한 재시도나 UI 멈춤이 발생하지 않도록 예외 처리와 타임아웃을 둡니다.

운영 체크리스트

  • 업로드 허용 확장자 최소화
  • data, collab 디렉터리 권한 최소화 원칙 검토
  • 보기 페이지 XSS 점검
  • 외부 API 장애 시 대체 문구 또는 비활성화 흐름 준비
  • 라이선스 파일과 설정 파일 백업
  • 업데이트 전후 보안 회귀 테스트 수행

참고 자료

라인 단위 비교
이전 새 버전
1 --- 1 ---
2 title: 보안·신뢰성 운영 가이드 2 title: 보안·신뢰성 운영 가이드
3 document_id: 74-security-guide 3 document_id: 74-security-guide
4 slug: 74-security-guide 4 slug: 74-security-guide
5 target_editor_version: 9.0.0 5 target_editor_version: 9.0.0
6 document_type: maintenance 6 document_type: maintenance
7 doc_type: maintenance 7 doc_type: maintenance
8 target_readers: [웹마스터, 개발자, AI agent] 8 target_readers: [웹마스터, 개발자, AI agent]
9 importance: High 9 importance: High
10 dependency: High 10 dependency: High
11 core_type: Maintenance 11 core_type: Maintenance
12 stability: [Version-Bound] 12 stability: [Version-Bound]
13 stable_anchor: [editor.lib.php, upload_config.php, nsfw_api_server.php] 13 stable_anchor: [editor.lib.php, upload_config.php, nsfw_api_server.php]
14 version_bound: [외부 서비스 정책, 업로드 정책, 보안 패치] 14 version_bound: [외부 서비스 정책, 업로드 정책, 보안 패치]
15 related_docs: [71-error-handling-guide.md, 72-version-issues-guide.md, core-upload_config-php.md, core-nsfw_api_server-php.md] 15 related_docs: [71-error-handling-guide.md, 72-version-issues-guide.md, core-upload_config-php.md, core-nsfw_api_server-php.md]
16 related_files: [config/upload_config.php, config/nsfw_api_server.php, editor.lib.php] 16 related_files: [config/upload_config.php, config/nsfw_api_server.php, editor.lib.php]
17 related_functions: [] 17 related_functions: []
18 related_classes_modules: [] 18 related_classes_modules: []
19 related_features: [업로드, 코드 블록, AI, 외부 API, 라이선스] 19 related_features: [업로드, 코드 블록, AI, 외부 API, 라이선스]
20 related_ui: [] 20 related_ui: []
21 change_risk: 보안 설정을 잘못 바꾸면 업로드 취약점, XSS, 외부 API 오용으로 이어질 수 있습니다. 21 change_risk: 보안 설정을 잘못 바꾸면 업로드 취약점, XSS, 외부 API 오용으로 이어질 수 있습니다.
22 reading_order: 74 22 reading_order: 74
23 summary: 업로드, 외부 API, 코드 블록, 보기 화면 렌더링 관점에서 T2Editor 운영 보안을 점검하는 문서입니다. 23 summary: 업로드, 외부 API, 코드 블록, 보기 화면 렌더링 관점에서 T2Editor 운영 보안을 점검하는 문서입니다.
24 description: 설치 이후 실제 운영 단계에서 점검해야 할 보안 항목과 신뢰성 확보 절차를 정리했습니다. 24 description: 설치 이후 실제 운영 단계에서 점검해야 할 보안 항목과 신뢰성 확보 절차를 정리했습니다.
25 tags: [T2Editor, security, upload, XSS, API, maintenance] 25 tags: [T2Editor, security, upload, XSS, API, maintenance]
26 version_tag: 9.0.0 26 version_tag: 9.0.0
27 maintenance_difficulty: High 27 maintenance_difficulty: High
28 test_requirement: High 28 test_requirement: High
29 ai_agent_risk: High 29 ai_agent_risk: High
30 source_basis: [현재 코드 분석 기반, 웹 참고 자료 기반] 30 source_basis: [현재 코드 분석 기반, 웹 참고 자료 기반]
31 beginner_section_included: true 31 beginner_section_included: true
32 webmaster_section_included: true 32 webmaster_section_included: true
33 developer_section_included: true 33 developer_section_included: true
34 --- 34 ---
35   35  
36 # 보안·신뢰성 운영 가이드 36 # 보안·신뢰성 운영 가이드
37   37  
38 T2Editor는 단순한 텍스트 입력기라기보다 파일 업로드, 외부 API 호출, HTML 렌더링, 코드 블록 표시, 단축 URL 생성 같은 기능을 함께 다루는 복합 시스템입니다. 따라서 실제 운영에서는 “에디터가 뜬다”는 것만으로 충분하지 않고, 업로드 보안과 출력 보안, 외부 서비스 장애 대응까지 함께 준비해야 합니다. 38 T2Editor는 단순한 텍스트 입력기라기보다 파일 업로드, 외부 API 호출, HTML 렌더링, 코드 블록 표시, 단축 URL 생성 같은 기능을 함께 다루는 복합 시스템입니다. 따라서 실제 운영에서는 “에디터가 뜬다”는 것만으로 충분하지 않고, 업로드 보안과 출력 보안, 외부 서비스 장애 대응까지 함께 준비해야 합니다.
39   39  
40 ## 초보자와 웹마스터를 위한 핵심 점검 40 ## 초보자와 웹마스터를 위한 핵심 점검
41   41  
42 가장 먼저 볼 것은 업로드 정책입니다. 이미지와 파일 업로드가 가능한 구조라면 허용 확장자와 용량 제한이 반드시 명확해야 합니다. 여기에 더해 업로드 디렉터리를 웹 루트 아래에 둘 것인지, 직접 실행이 불가능한 경로로 둘 것인지도 검토해야 합니다. 42 가장 먼저 볼 것은 업로드 정책입니다. 이미지와 파일 업로드가 가능한 구조라면 허용 확장자와 용량 제한이 반드시 명확해야 합니다. 여기에 더해 업로드 디렉터리를 웹 루트 아래에 둘 것인지, 직접 실행이 불가능한 경로로 둘 것인지도 검토해야 합니다.
43   43  
44 다음으로 중요한 것은 외부 서비스입니다. AI, T2Search, ClipURL처럼 DSclub이나 외부 API를 사용하는 기능은 편리하지만, 운영 중단이나 호출 제한에 영향을 받습니다. 사이트 특성상 꼭 필요하지 않다면 초기에 비활성화하는 편이 더 안전할 수 있습니다. 44 다음으로 중요한 것은 외부 서비스입니다. AI, T2Search, ClipURL처럼 DSclub이나 외부 API를 사용하는 기능은 편리하지만, 운영 중단이나 호출 제한에 영향을 받습니다. 사이트 특성상 꼭 필요하지 않다면 초기에 비활성화하는 편이 더 안전할 수 있습니다.
45   45  
46 ## 전문 개발자를 위한 보안 포인트 46 ## 전문 개발자를 위한 보안 포인트
47   47  
48 ### 업로드 보안 48 ### 업로드 보안
49 - 확장자만 보지 말고 MIME 검사와 파일명 정규화를 함께 적용합니다. 49 - 확장자만 보지 말고 MIME 검사와 파일명 정규화를 함께 적용합니다.
50 - 이미지 변환(WebP 등) 과정에서 예외가 발생해도 원본 파일이 무방비하게 남지 않도록 처리합니다. 50 - 이미지 변환(WebP 등) 과정에서 예외가 발생해도 원본 파일이 무방비하게 남지 않도록 처리합니다.
51 - 업로드 디렉터리에서 PHP 실행이 가능하지 않도록 서버 설정을 별도로 확인합니다. 51 - 업로드 디렉터리에서 PHP 실행이 가능하지 않도록 서버 설정을 별도로 확인합니다.
52   52  
53 ### 출력 보안 53 ### 출력 보안
54 - 코드 블록은 반드시 “텍스트로 렌더링”되어야 하며, HTML로 평가되지 않아야 합니다. 54 - 코드 블록은 반드시 “텍스트로 렌더링”되어야 하며, HTML로 평가되지 않아야 합니다.
55 - 보기 페이지에서 에디터가 만든 HTML을 어느 수준까지 허용할지 정책을 분리합니다. 55 - 보기 페이지에서 에디터가 만든 HTML을 어느 수준까지 허용할지 정책을 분리합니다.
56 - 커스텀 플러그인이 raw HTML을 삽입한다면 보기 스킨에서의 필터 정책까지 함께 문서화해야 합니다. 56 - 커스텀 플러그인이 raw HTML을 삽입한다면 보기 스킨에서의 필터 정책까지 함께 문서화해야 합니다.
57   57  
58 ### 외부 API 보안 58 ### 외부 API 보안
59 - API 키, 공유 비밀값, 도메인 서명 같은 정보는 클라이언트 코드에 직접 노출하지 않는 것이 원칙입니다. 59 - API 키, 공유 비밀값, 도메인 서명 같은 정보는 클라이언트 코드에 직접 노출하지 않는 것이 원칙입니다.
60 - CORS 허용 범위를 넓힐 때는 실제 호출 도메인만 허용하도록 제한합니다. 60 - CORS 허용 범위를 넓힐 때는 실제 호출 도메인만 허용하도록 제한합니다.
61 - 장애 시 무한 재시도나 UI 멈춤이 발생하지 않도록 예외 처리와 타임아웃을 둡니다. 61 - 장애 시 무한 재시도나 UI 멈춤이 발생하지 않도록 예외 처리와 타임아웃을 둡니다.
62   62  
63 ## 운영 체크리스트 63 ## 운영 체크리스트
64   64  
65 - 업로드 허용 확장자 최소화 65 - 업로드 허용 확장자 최소화
66 - `data`, `collab` 디렉터리 권한 최소화 원칙 검토 66 - `data`, `collab` 디렉터리 권한 최소화 원칙 검토
67 - 보기 페이지 XSS 점검 67 - 보기 페이지 XSS 점검
68 - 외부 API 장애 시 대체 문구 또는 비활성화 흐름 준비 68 - 외부 API 장애 시 대체 문구 또는 비활성화 흐름 준비
69 - 라이선스 파일과 설정 파일 백업 69 - 라이선스 파일과 설정 파일 백업
70 - 업데이트 전후 보안 회귀 테스트 수행 70 - 업데이트 전후 보안 회귀 테스트 수행
71   71  
72 ## 참고 자료 72 ## 참고 자료
73   73  
74 - DSclub T2Editor 서비스 페이지: https://dsclub.kr/service/editor 74 - DSclub T2Editor 서비스 페이지: https://dsclub.kr/service/editor
75 - DSclub 개발 및 관리 가이드: https://dsclub.kr/code/1403 75 - DSclub 개발 및 관리 가이드: https://dsclub.kr/code/1403
76 - SIR T2Editor 9.0.0 업데이트 글: https://sir.kr/boards/g5_plugin/15053 76 - SIR T2Editor 9.0.0 업데이트 글: https://sir.kr/boards/g5_plugin/15053
77   77  
T2WIKI · 기술 통합 위키 & 프로젝트 허브 · 나무위키 + Markdown 완벽 지원 · SQLite · PHP 8.2 · 소개 · 문법 안내