본문으로 건너뛰기
TubePress — 무료, 자체 호스팅 & 지속 관리
사용자 및 관리

보안

2단계 인증, 캡차, 맞춤 관리자 URL, 연령 인증 및 보안 강화를 다룹니다.

TubePress는 기본적으로 보안이 강화되어 있습니다 — 모든 폼에 CSRF 보호, 민감한 작업에 속도 제한, 최신 비밀번호 해싱과 세션 재생성이 모두 내장되어 있습니다. 이 기본 설정 위에, 관리자를 강력하게 잠글 수 있는 몇 가지 제어 기능이 있습니다.

이 페이지에서는 이중 인증, CAPTCHA, 관리자 로그인을 비밀 URL로 이동하는 방법, 연령 제한, 전송 보안을 다루고 보안 강화 체크리스트로 마무리합니다. 대부분은 설정 → 보안에서 찾을 수 있습니다.

보안 개요

좋은 보안은 층위별로 적용됩니다: 단일 제어만으로는 충분하지 않지만, 함께 사용하면 사이트를 공격하기 어렵게 만듭니다. 보안 설정에서 관리하는 제어 기능은 다음과 같습니다:

  • 이중 인증 — 관리자 로그인 시 일회용 코드.
  • CAPTCHA — 봇이 공개 폼에 접근하는 것을 차단합니다.
  • 사용자 지정 관리자 URL — 스캐너로부터 로그인을 숨깁니다.

내부적으로 프레임워크는 이미 Argon2id(또는 Argon2를 사용할 수 없는 경우 bcrypt)로 비밀번호를 해싱하고, 모든 상태 변경 요청에서 CSRF 토큰을 검증하며, 로그인 시 세션을 재생성하고, 반복된 로그인, 회원가입, 비밀번호 재설정 시도를 차단합니다.

이중 인증

이중 인증(2FA)은 관리자 로그인에 시간 기반 일회용 코드(TOTP)를 추가하여, 비밀번호만 탈취되어도 로그인할 수 없게 합니다. Google Authenticator, Authy, 1Password 또는 TOTP 호환 앱과 함께 작동합니다.

등록하려면 설정 → 보안을 열고:

  1. 2FA 활성화를 클릭하여 비밀 키를 생성합니다.
  2. 인증 앱으로 QR 코드를 스캔하거나, 표시된 키를 수동으로 입력합니다.
  3. 현재 6자리 코드를 입력하여 확인하고 2FA를 켭니다.

비밀 키는 개인 계정에 저장되므로, 각 관리자는 자신의 계정에 등록해야 합니다. 나중에 2FA를 비활성화하려면 현재 코드가 필요하며, 게이트는 실패 차단 방식입니다: 코드가 설정되면 공개 로그인 폼을 통해 인증하더라도 관리자 패널에 접근 시 코드를 요구합니다.

키의 사본을 보관하세요. 등록할 때 QR 코드 옆에 표시된 비밀 키를 비밀번호 관리자에 저장하세요. 휴대폰을 분실한 경우, 해당 키로 새 인증 앱에 계정을 다시 추가할 수 있습니다.

CAPTCHA

CAPTCHA는 공개 폼의 자동화된 남용을 방지합니다. 설정 → 보안에서 제공자를 선택하세요:

끄기
CAPTCHA 없음.
Google reCAPTCHA
v2("나는 로봇이 아닙니다" 체크박스) 또는 v3(보이지 않음, 점수 기반) 중 선택.
Cloudflare Turnstile
무료이며 개인정보 친화적으로, 퍼즐 없음 — 대부분의 방문자는 보이지 않게 통과합니다.

제공자의 사이트 키비밀 키를 붙여넣고, 밝거나 어두운 위젯 테마를 선택한 다음, 보호할 폼을 선택하세요 — 회원가입, 댓글, 문의 폼은 각각 독립적으로 토글되며, 제공자가 설정되면 기본적으로 켜집니다. CAPTCHA는 댓글에 설명된 댓글 스팸 방지 모음과 함께 작동합니다.

관리자 로그인에는 CAPTCHA가 적용되지 않습니다. 로그인 폼은 대신 속도 제한으로 보호됩니다 — 반복된 실패 시도는 차단됩니다. CAPTCHA는 방문자용 회원가입, 댓글, 문의 폼에 적용됩니다.

사용자 지정 관리자 URL

자동화된 스캐너는 /admin/login과 같이 잘 알려진 경로를 집중 공격합니다. 로그인 폼을 비밀 슬러그로 이동하면 탐색 시도가 아무것도 찾지 못합니다. 설정 → 보안에서 사용자 지정 로그인 슬러그(3~50자, 소문자, 숫자, 하이픈)를 설정하세요. 그러면 로그인은 /admin/login 대신 /your-secret-slug에 위치하게 되며, 대시보드 자체는 여전히 /admin에 유지되고 인증으로 보호됩니다.

북마크해 두세요, 그렇지 않으면 잠길 수 있습니다. 사용자 지정 슬러그가 활성화되어 있으면, 기본 /admin/login이 작동하지 않습니다. 이것은 불명확성을 통한 보안입니다 — 강력한 비밀번호와 2FA를 대체할 수 없습니다. 슬러그를 잊어버린 경우, 데이터베이스에서 직접 삭제하세요: DELETE FROM settings WHERE setting_key='admin_login_slug'.

연령 제한

성인 사이트의 경우, 번들로 제공되는 Age Gate 플러그인은 콘텐츠 앞에 전체 화면 연령 인증 화면을 표시하며, 여러 인증 모드, 선택적 RTA 메타 태그, 이용 약관, 2257 및 개인정보 보호정책 페이지 링크를 제공합니다. /admin/plugins에서 활성화 및 구성됩니다.

이는 콘텐츠 관리 및 규정 준수 설정의 일부이므로, 전체 안내는 콘텐츠 관리 페이지에 있습니다.

HTTPS & 헤더

항상 사이트를 HTTPS로 제공하세요 — 전송 중 비밀번호와 세션 쿠키를 보호합니다. Let's Encrypt(Certbot)의 무료 인증서로 충분합니다. TLS가 프록시나 로드 밸런서에서 상위에서 종료되는 경우, 애플리케이션이 요청이 안전하다는 것을 알 수 있도록 스킴을 전달하세요(예: X-Forwarded-Proto 헤더).

프로덕션 환경에서는 PHP의 display_errors(스택 추적이 방문자에게 노출되지 않도록)와 expose_php(버전이 노출되지 않도록)도 끄세요. 상태 점검은 이 세 가지 모두를 확인해 줍니다.

보안 강화 체크리스트

사이트를 공개하기 전, 그리고 이후에도 주기적으로 이 목록을 확인하세요:

  1. 길고 고유한 관리자 비밀번호를 설정하세요.
  2. 모든 직원 계정에 2FA를 등록하세요.
  3. 로그인을 사용자 지정 관리자 URL로 이동하세요.
  4. 회원가입, 댓글, 문의에 CAPTCHA를 활성화하세요.
  5. 모든 것을 HTTPS로 제공하세요.
  6. display_errorsexpose_php를 끄세요.
  7. 직원에게 필요한 최소 권한만 부여하세요 — 관리자보다 중재자를 선호하세요.
  8. PHP와 TubePress를 최신 상태로 유지하고, 정기적으로 백업을 실행하세요.

다음 단계

여전히 막히셨나요?

대시보드에서 티켓을 열면 저희 팀이 도와드리겠습니다.

라이브 데모 체험하기 → TubePress 다운로드 →