見出し画像

【 PHP学習 #22 】 basic認証 FIREへの旅路 ♯475

こちらの記事で、問い合わせフォームを作成しました。

この内容を一覧で見ることができるようにするのですが、
誰もがアクセスできる状態では、個人情報の問題が出てきます。

そこで、basic認証をかけて、ログインが必要な状態を作ります。


【 basic認証 】

パスワードとログインIDを設定することができます。


 ■ .htaccess


「 .htacess 」ファイルは、サーバーで様々な処理を行うファイルです。

処理例:
リダイレクト
アクセス切り替え(PC版、スマホ版など)
特定のIPアドレス・プロバイダからのアクセス制限をかける
など


■ Basic認証の手順① 仮ファイル

.htaccessファイルは、アクセス制限がかかるので、
先に必要な情報を別のファイルに書いておきます。

今回は、mainteフォルダを作り、test.phpというファイルに必要な情報を書いています。

必要な情報は、以下の二つです。
①  パスワードを記録したファイルの場所
②  パスワード(暗号化)


▶︎  全コード

<?php

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


echo '<br>';


//パスワード(暗号化)
echo(password_hash('password123', PASSWORD_BCRYPT));


?>



▶︎  書き方

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

<?php

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

マジック定数の"__FILE__"を使用して、ファイルのパスを取得します。
現時点では、test.phpのパスですが、
最後の部分(test.php)を「 .htaccess 」に書き換えて使います。


②  パスワード(暗号化)

<?php


//パスワード(暗号化)
echo(password_hash('password123', PASSWORD_BCRYPT));

パスワードを作るには、password_hashという関数を使います。

▶︎  password_hash

強力な一方向ハッシュアルゴリズムを使って、 
新しいパスワードハッシュを作ります。

アルゴリズムとは、「問題を解決するための手順や計算方法」という意味です。つまり、アルゴリズムを使って、パスワードを作るということは、特殊な計算方法を使って、文字列を暗号化するということですね。

そして、このアルゴリズムには、
PASSWORD_DEFAULT
PASSWORD_BCRYPT
があります。


今回のコードでは、PASSWORD_BCRYPTを使ってパスワードを作っています。

password_hash('password123', PASSWORD_BCRYPT)

password_hash( ' 任意のパスワード'  ,   アルゴリズム)

今回は、パスワードを「password123」としました。
これを暗号化してechoしています。



■ Basic認証の手順② ファイルを作る

test.phpにて準備した内容を本ファイルに書いていきます。
Basic認証でのログイン処理に必要なファイルは二つです。


▶︎  .htaccess

AuthType Basic
AuthName "IDとパスワードを入力してください"
AuthUserFile /Applications/MAMP/htdocs/php_test/mainte/.htpasswd
require valid-user

・AuthType Basic 

Basic認証をする処理

・AuthName 

書いた内容がログインアラートに表示されます

・AuthUserFile 

ここに、先ほどのパスを貼り付けて、最後の部分を、htpasswdに書き換えます。htpasswdファイルには、後で、ログインIDとパスワードの情報を入れます。

・require valid-user

ログインしたユーザーのみが中に入れるようになります。


※ 改行

require valid-userを書いたら、「改行」をします。




▶︎  .htpasswd

admin:$2y$10$rOPL4dM5YGasvu9ZejDO/.o6B0s7DrIw6MkPiCa7MeB.yhUlZKHK.

ログインID :  パスワード(暗号化したもの)

このような形式で書きます。

今回は、ログインIDをadmin としています。

パスワードは、先ほど生成したパスワードをコピペします。


※ 改行

コードを書いたら「改行」をします。



【 ブラウザで確認 】

ブラウザで、test.phpを開くと、
ログインウインドーが開きユーザー名とパスワードを要求されます。

これで、Basic認証が完了しました。

一度ログインすると、次回からこの表示は出ないので、色々試したい場合は、ID名を変えるなどしてしてください。


【 まとめ 】 

Basic認証について学びました。

.htaccessファイルは、サーバー管理の重要なファイルでから、扱いに慣れておくことが必要です!


この記事が気に入ったらサポートをしてみませんか?