보안
2단계 인증, 캡차, 맞춤 관리자 URL, 연령 인증 및 보안 강화를 다룹니다.
TubePress는 기본적으로 보안이 강화되어 있습니다 — 모든 폼에 CSRF 보호, 민감한 작업에 속도 제한, 최신 비밀번호 해싱과 세션 재생성이 모두 내장되어 있습니다. 이 기본 설정 위에, 관리자를 강력하게 잠글 수 있는 몇 가지 제어 기능이 있습니다.
이 페이지에서는 이중 인증, CAPTCHA, 관리자 로그인을 비밀 URL로 이동하는 방법, 연령 제한, 전송 보안을 다루고 보안 강화 체크리스트로 마무리합니다. 대부분은 설정 → 보안에서 찾을 수 있습니다.
보안 개요
좋은 보안은 층위별로 적용됩니다: 단일 제어만으로는 충분하지 않지만, 함께 사용하면 사이트를 공격하기 어렵게 만듭니다. 보안 설정에서 관리하는 제어 기능은 다음과 같습니다:
- 이중 인증 — 관리자 로그인 시 일회용 코드.
- CAPTCHA — 봇이 공개 폼에 접근하는 것을 차단합니다.
- 사용자 지정 관리자 URL — 스캐너로부터 로그인을 숨깁니다.
내부적으로 프레임워크는 이미 Argon2id(또는 Argon2를 사용할 수 없는 경우 bcrypt)로 비밀번호를 해싱하고, 모든 상태 변경 요청에서 CSRF 토큰을 검증하며, 로그인 시 세션을 재생성하고, 반복된 로그인, 회원가입, 비밀번호 재설정 시도를 차단합니다.
이중 인증
이중 인증(2FA)은 관리자 로그인에 시간 기반 일회용 코드(TOTP)를 추가하여, 비밀번호만 탈취되어도 로그인할 수 없게 합니다. Google Authenticator, Authy, 1Password 또는 TOTP 호환 앱과 함께 작동합니다.
등록하려면 설정 → 보안을 열고:
- 2FA 활성화를 클릭하여 비밀 키를 생성합니다.
- 인증 앱으로 QR 코드를 스캔하거나, 표시된 키를 수동으로 입력합니다.
- 현재 6자리 코드를 입력하여 확인하고 2FA를 켭니다.
비밀 키는 개인 계정에 저장되므로, 각 관리자는 자신의 계정에 등록해야 합니다. 나중에 2FA를 비활성화하려면 현재 코드가 필요하며, 게이트는 실패 차단 방식입니다: 코드가 설정되면 공개 로그인 폼을 통해 인증하더라도 관리자 패널에 접근 시 코드를 요구합니다.
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(버전이 노출되지 않도록)도 끄세요. 상태 점검은 이 세 가지 모두를 확인해 줍니다.
보안 강화 체크리스트
사이트를 공개하기 전, 그리고 이후에도 주기적으로 이 목록을 확인하세요:
- 길고 고유한 관리자 비밀번호를 설정하세요.
- 모든 직원 계정에 2FA를 등록하세요.
- 로그인을 사용자 지정 관리자 URL로 이동하세요.
- 회원가입, 댓글, 문의에 CAPTCHA를 활성화하세요.
- 모든 것을 HTTPS로 제공하세요.
display_errors와expose_php를 끄세요.- 직원에게 필요한 최소 권한만 부여하세요 — 관리자보다 중재자를 선호하세요.
- PHP와 TubePress를 최신 상태로 유지하고, 정기적으로 백업을 실행하세요.
다음 단계