5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

htaccessによるベーシック認証の書き方(パスワード認証)

Last updated at Posted at 2023-08-22

昨日こんなツイートをしました。このツイートを見ただけじゃベーシック認証の書き方などわからないとおもいます。ので今回はもう少し深堀していこうと思います。

htaccessによるベーシック認証

htaccessの認証機能を利用することで、特定のURLにアクセスした場合、ページの表示前にパスワード認証機能を設けることができます。
この機能によりアクセス制限することで、セキュリティーを高めることができます。

フォルダを作成

まずは app フォルダを作成しその中に approval.php ファイルを作成していきます。

app
 |
 |-----> approval.php

今回は .htacsece で書いていきます。

.htacsece はアクセス制限がかかってくるので、あらかじめ必要な情報を記載する必要があります。それが以下の2つになります。

必要な情報

・パスワードを記録したファイルの場所

・実際のパスワード(暗号化)

パスワードを記録したファイルの場所

echo __FILE__;

これでファイルの場所を表示することができます。

一応 echo で表示したファイルパスをコピーしておきましょう。自分の場合は以下

📒 D:\xampp\htdocs\test\app\approval.php

実際のパスワード(暗号化)

$password = 'SuTomSun0218';
//第一引数実際のパスワード   //第二引数でパスワードの暗号化
echo (password_hash($password, PASSWORD_BCRYPT));

まずパスワードとなる変数$passwordを用意して 'SuTomSun0218' というパスワードを入れてあげます。

今回は password_hash を使って暗号化していきます。

第1引数には実際のパスワードを入れます。今回は$password

第2引数にはパスワードの暗号をしてくれる PASSWORD_BCRYPT を記載してあげています。

出力内容

$2y$10$9wY4taTKF0duyFBa5Kd5VObinepvtqn9l4FKrWNEEvVLemmSOT/nO

実際に確認してみると暗号化されていることがわかりますね。

ファイルを作成

app フォルダ 内に .htaccess.htpasswd というファイルを作成してください。

app
 |
 |-----> approval.php
         .htaccess      //追加
         .htpasswd     //追加

[ . ]ドットをつける事で隠しファイルという扱いになります

htaccessでベーシック認証するための書き方

app > .htaccess

AuthType Basic
AuthName "IDとパスワードを入力してください"
AuthUserFile D:\xampp\htdocs\test\app\.htpasswd
require valid-user

説明

AuthType Basic

と書くことでベーシック認証がかかることになります。

AuthName "IDとパスワードを入力してください"

表示する文字

AuthUserFile D:\xampp\htdocs\test\app\.htpasswd

パスワードを保管しているファイルのありかを示している。

先ほど パスワードを記録したファイルの場所 でコピーしたファイルパスを記載してください。

最後の approval.php を消して .htpasswd に変えてあげればパスワードを保管しているファイルのありかを示す事ができます。

require valid-user
//改行いれてね

としてあげると認証したユーザーだけが中に入れるようになります。

最後にEnterで改行するようにしてください。

.htpasswdの書き方

ID:パスワードの形で書いていく必要があります。

admin:$2y$10$9wY4taTKF0duyFBa5Kd5VObinepvtqn9l4FKrWNEEvVLemmSOT/nO

説明

IDが admin

パスワードが、先ほど 実際のパスワード(暗号化) でechoを使用し表示した暗号化されたパスワードを貼り付けてください

実際にログインしてみる

URL

http://localhost/test/app/approval.php

Untitled.png

ユーザー名 admin

パスワード SuTomSun0218

※この記事と同じであれば上の記述で問題ない

ログイン後 app > approval.php に遷移すればログイン成功です。

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?