スターサーバー管理

Home

http://canape.stars.ne.jp/リスク軽減してみた

❗HTTP のままにするリスク
通信が暗号化されていない
→ IDやパスワードが「平文」で送信され、盗聴される可能性があります。
Basic認証の情報も暗号化されない
→ .htpasswd の認証情報も盗まれるリスクがあります。
フォームで送信されるデータも危険
→ login.php などで送信されるパスワードや入力内容も傍受されやすくなります。

管理者ログイン(MAMP起動後にアクセス)

ログイン認証付き 管理者専用ページの構築手順

このページでは、ハッシュ化されたパスワードを用いて、ログイン認証機能を備えた管理者ページを構築する方法を説明します。セキュリティを重視した構成になっています。

1. .env にハッシュ済みパスワードを保存

まず、ログイン用のパスワードを PHPの password_hash() 関数でハッシュ化し、.env ファイルに保存します。

ADMIN_PASSWORD_HASH=$2y$10$....(ハッシュ文字列)

注意: .env ファイルは外部に公開せず、.gitignore に追加して管理します。

2. vlucas/phpdotenv ライブラリのインストール

.env をPHPから読み込むために、Composerを使用して以下をインストールします。

composer require vlucas/phpdotenv

3. ディレクトリ構成の例

/canape_save2_docs/
├── .env
├── vendor/
└── secure-admin-portal-94cfa3/
    ├── admin.php
    └── logout.php

4. admin.php によるログイン処理

管理者ページの admin.php では、.env を読み込み、入力されたパスワードと比較します。パスワードが一致した場合のみページを表示します。

  • password_verify() を使用してハッシュを検証
  • セッションでログイン状態を維持
  • 未ログイン時はログインフォームを表示

5. logout.php によるログアウト

セッションを破棄してログアウトする logout.php を作成します。

6. セキュリティ補足

  • .envファイルをWeb上に公開しないhtdocs の外に置くのが理想)
  • .envはGitに含めない.gitignoreに記述)
  • 管理ディレクトリ名は推測されにくいものに変更
  • .htaccess と .htpasswd を活用したアクセス制限
    • .htaccess を使うことで、特定ファイル(例:admin_config.php)へのアクセスを制限できます。
    • .htpasswd にユーザー名と暗号化パスワードを登録し、認証を求めることで、管理エリアを外部から守ることができます。
    • .htpasswd はWebからアクセスできない安全な場所(public_htmlの外など)に配置するのが望ましいです。

7. 表示例(マスク済みパスワード)

管理者ページでは、登録情報の一覧表を表示できます。パスワード欄は********とマスクすることが一般的です。

8. 補足

希望に応じて、CSVやデータベースからの情報読込、自動表示、パスワード可視化のボタン追加なども可能です。


以上が、純粋なPHPで構成されたログイン認証付きの管理者専用ページを作成する手順です。