コンテンツへスキップ
TubePress — 無料・セルフホスト & 積極的メンテナンス
ユーザーと管理

セキュリティ

二要素認証、CAPTCHA、カスタム管理 URL、年齢確認、そしてセキュリティ強化について解説します。

TubePress はデフォルトで堅牢な設定になっています — すべてのフォームに CSRF 保護、機密アクションへのレート制限、最新のパスワードハッシュとセッション再生成がすべて組み込まれています。そのベースラインに加えて、いくつかのコントロールでアドミンをさらに強固にロックできます。

このページでは、二要素認証、CAPTCHA、管理者ログインをシークレット URL に移動する方法、年齢確認ゲート、トランスポートセキュリティについて説明し、最後に強化チェックリストで締めくくります。これらの多くは Settings → Security にあります。

セキュリティの概要

適切なセキュリティは層状になっています:単一のコントロールだけでは不十分ですが、組み合わせることでサイトを攻撃しにくい標的にします。Security 設定で管理できるコントロールは:

  • 二要素認証 — 管理者ログイン時のワンタイムコード。
  • CAPTCHA — ボットから公開フォームを守ります。
  • カスタム管理者 URL — スキャナーからログインを隠します。

その裏では、フレームワークがすでに Argon2id(Argon2 が利用できない場合は bcrypt)でパスワードをハッシュし、すべての状態変更リクエストで CSRF トークンを検証し、ログイン時にセッションを再生成し、繰り返されるログイン、登録、パスワードリセットの試みを制限しています。

二要素認証

二要素認証(2FA)は、管理者サインインに時間ベースのワンタイムコード(TOTP)を追加するため、パスワードが盗まれただけでは侵入できません。Google Authenticator、Authy、1Password、またはその他の TOTP 対応アプリで動作します。

登録するには、Settings → Security を開き、次の手順を実行します:

  1. Enable 2FA をクリックしてシークレットを生成します。
  2. 認証アプリで QR コードをスキャンするか、表示されたキーを手動で入力します。
  3. 現在の 6 桁のコードを入力して確認し、2FA を有効にします。

シークレットは個々のアカウントに対して保存されるため、各管理者が独自に登録します。後で 2FA を無効にするには現在のコードが必要であり、ゲートはフェイルクローズです:コードが設定されると、公開ログインフォームで認証した場合でも、管理パネルはエントリ時にそれを要求します。

キーのコピーを保存してください。 登録時に秘密鍵(QR コードの横に表示)をパスワードマネージャーに保存してください。スマートフォンを紛失した場合、そのキーを使用して新しい認証アプリにアカウントを再追加できます。

CAPTCHA

CAPTCHA は公開フォームへの自動的な悪用を阻止します。Settings → Security でプロバイダーを選択します:

オフ
CAPTCHA なし。
Google reCAPTCHA
v2(「私はロボットではありません」チェックボックス)または v3(非表示、スコアベース)。
Cloudflare Turnstile
無料でプライバシーに配慮しており、パズルなし — ほとんどの訪問者は目に見えない形でパスします。

プロバイダーの site keysecret key を貼り付け、ライトまたはダークのウィジェットテーマを選択し、保護するフォームを選択します — RegistrationCommentsContact form はそれぞれ独立して切り替えられ、プロバイダーが設定されるとデフォルトでオンになります。CAPTCHA は Comments に記載されているコメントのスパム対策スイートと組み合わせて使用できます。

管理者ログインは CAPTCHA で保護されていません。 ログインフォームはレート制限で保護されています — 繰り返しの失敗した試みは制限されます。CAPTCHA は訪問者向けの登録、コメント、お問い合わせフォームをカバーします。

カスタム管理者 URL

自動スキャナーは /admin/login のようなよく知られたパスを攻撃します。ログインフォームをシークレットスラッグに移動することで、これらのプローブが何もヒットしないようにできます。Settings → Securitycustom login slug(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 から有効化および設定できます。

これはモデレーションおよびコンプライアンス設定の一部であるため、詳細なウォークスルーは Moderation ページにあります。

HTTPS とヘッダー

常にサイトを HTTPS で提供してください — 転送中のパスワードとセッション Cookie を保護します。Let's Encrypt(Certbot)からの無料証明書で十分です。TLS がプロキシまたはロードバランサーの上流で終端される場合は、アプリケーションがリクエストが安全であることを認識できるようにスキームを転送してください(例:X-Forwarded-Proto ヘッダー)。

本番環境では、PHP の display_errors(スタックトレースが訪問者に届かないようにする)と expose_php(バージョンが公開されないようにする)もオフにしてください。ヘルスチェックはこれら 3 つすべてをフラグで示します。

強化チェックリスト

公開前および定期的に公開後にこのリストを確認してください:

  1. 長くユニークな管理者パスワードを設定してください。
  2. すべてのスタッフアカウントに 2FA を登録してください。
  3. ログインを カスタム管理者 URL に移動してください。
  4. 登録、コメント、お問い合わせで CAPTCHA を有効にしてください。
  5. すべてを HTTPS で提供してください。
  6. display_errorsexpose_php をオフにしてください。
  7. スタッフには最低限必要な役割を与えてください — administrator よりも moderator を優先してください。
  8. PHP と TubePress を 最新の状態に保ち、定期的なバックアップを実行してください。

次のステップ

まだお困りですか?

ダッシュボードからチケットを送信してください。サポートチームがお手伝いします。

ライブデモを試す → TubePress をダウンロード →