セキュリティ
二要素認証、CAPTCHA、カスタム管理 URL、年齢確認、そしてセキュリティ強化について解説します。
TubePress はデフォルトで堅牢な設定になっています — すべてのフォームに CSRF 保護、機密アクションへのレート制限、最新のパスワードハッシュとセッション再生成がすべて組み込まれています。そのベースラインに加えて、いくつかのコントロールでアドミンをさらに強固にロックできます。
このページでは、二要素認証、CAPTCHA、管理者ログインをシークレット URL に移動する方法、年齢確認ゲート、トランスポートセキュリティについて説明し、最後に強化チェックリストで締めくくります。これらの多くは Settings → Security にあります。
セキュリティの概要
適切なセキュリティは層状になっています:単一のコントロールだけでは不十分ですが、組み合わせることでサイトを攻撃しにくい標的にします。Security 設定で管理できるコントロールは:
- 二要素認証 — 管理者ログイン時のワンタイムコード。
- CAPTCHA — ボットから公開フォームを守ります。
- カスタム管理者 URL — スキャナーからログインを隠します。
その裏では、フレームワークがすでに Argon2id(Argon2 が利用できない場合は bcrypt)でパスワードをハッシュし、すべての状態変更リクエストで CSRF トークンを検証し、ログイン時にセッションを再生成し、繰り返されるログイン、登録、パスワードリセットの試みを制限しています。
二要素認証
二要素認証(2FA)は、管理者サインインに時間ベースのワンタイムコード(TOTP)を追加するため、パスワードが盗まれただけでは侵入できません。Google Authenticator、Authy、1Password、またはその他の TOTP 対応アプリで動作します。
登録するには、Settings → Security を開き、次の手順を実行します:
- Enable 2FA をクリックしてシークレットを生成します。
- 認証アプリで QR コードをスキャンするか、表示されたキーを手動で入力します。
- 現在の 6 桁のコードを入力して確認し、2FA を有効にします。
シークレットは個々のアカウントに対して保存されるため、各管理者が独自に登録します。後で 2FA を無効にするには現在のコードが必要であり、ゲートはフェイルクローズです:コードが設定されると、公開ログインフォームで認証した場合でも、管理パネルはエントリ時にそれを要求します。
CAPTCHA
CAPTCHA は公開フォームへの自動的な悪用を阻止します。Settings → Security でプロバイダーを選択します:
プロバイダーの site key と secret key を貼り付け、ライトまたはダークのウィジェットテーマを選択し、保護するフォームを選択します — Registration、Comments、Contact form はそれぞれ独立して切り替えられ、プロバイダーが設定されるとデフォルトでオンになります。CAPTCHA は Comments に記載されているコメントのスパム対策スイートと組み合わせて使用できます。
カスタム管理者 URL
自動スキャナーは /admin/login のようなよく知られたパスを攻撃します。ログインフォームをシークレットスラッグに移動することで、これらのプローブが何もヒットしないようにできます。Settings → Security で custom 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 つすべてをフラグで示します。
強化チェックリスト
公開前および定期的に公開後にこのリストを確認してください:
- 長くユニークな管理者パスワードを設定してください。
- すべてのスタッフアカウントに 2FA を登録してください。
- ログインを カスタム管理者 URL に移動してください。
- 登録、コメント、お問い合わせで CAPTCHA を有効にしてください。
- すべてを HTTPS で提供してください。
display_errorsとexpose_phpをオフにしてください。- スタッフには最低限必要な役割を与えてください — administrator よりも moderator を優先してください。
- PHP と TubePress を 最新の状態に保ち、定期的なバックアップを実行してください。
次のステップ