Basic認証で開発中のサイトやページを保護!一般には見られないようにするネタ
〈記事の公開日〉
この記事は約4分で読めます。
クリネタ記事
上映率
どうも、樋口です。
サイトやページを制作するときは関係者以外には見られると困りますよね。
そんな時に最もオーソドックスな手法はBasic認証・Digest認証と呼ばれるパスワードを設定する方法です。
\ 白背景が眩しい時に!背景を暗くするよ!/
目次
Basic(ベーシック)認証とは?
Basic認証はウェブサイトの特定の領域にアクセス制限をかける事のできる認証方法の一つです。
URLとIDとPassだけ知っていれば閲覧ができる簡易的なものなので、クライアントやプロジェクトの関係者にご確認いただくときによく利用します。
こんな感じでIDとパスワードとURLを送って確認してもらうことが多いです。
=====
ID : 0000
pass : 1111
・ベーシック認証です
https://crenetarium.design/_lab/basic/
=====
サイト全体ではなく、特定のディレクトリのみベーシック認証をかけることも可能になります。
上記であれば/basic/の下の階層すべてにベーシック認証がかかります。
Basic認証すると検索結果に反映されない
ベーシック認証を設定するとGoogleやYahoo!などで検索しても検索結果に出てこなくなります。検索によってURLが流出してしまうことはありません。
逆に、今まで運用していたディレクトリ上でベーシック認証する場合は一般の人には閲覧ができなくなるので注意が必要になります。
Basic認証の作り方は?
Basic認証には
- 「.htaccess」ファイル
- 「.htpasswd」ファイル
の2種類が必要になります。
各種説明の前に、拡張子がなく「.」が最初に来てるものを不可視ファイルと呼びます。
PC上の表示設定で「不可視ファイルを表示」させないと見ることができないので、作業中はhtaccess.txtなどで編集し、FTPサーバーにアップした後に「.htaccess」とリネイムするのが無難です。
PC内にはさまざまな不可視ファイルがありますが、消したり編集されたくないため不可視としている場合があります。間違って削除しないよう「不可視ファイルを表示」させる際にはご注意ください!
「.htaccess」ファイルの作り方
ベーシック認証に必要なファイルの一つが「.htaccess」です。
この「.htaccess」はサーバーに命令を送るプログラムになります。ご使用のレンタルサーバーのプランによっては利用できない場合があるので、事前にレンタルサーバーへの確認をしてください。
「[レンタルサーバー名] htaccess 利用できる」などで検索すれば使えるかどうか分かるかと思います。
「.htaccess」には以下を記述します。
AuthType Basic
AuthName "IDとパスワードを入力してください"
AuthUserFile /【フルパス】/.htpasswd
require valid-user
後ほど説明する「.htpasswd」がアップロードされる「フルパス」を記入する必要があります。
フルパスはレンタルサーバーの管理画面で確認するか、以下のPHP文をアップロードし確認する方法があります。
<?php echo __FILE__; ?>
上記をfullpath.phpなどの名前でアップロードし、アクセスするとフルパスが表示されますので試してみてください。
「.password」ファイルの作り方
次に必要なのは「.password」のデータです。
このデータではサイトを閲覧するためのIDとPASSを設定するファイルになります。
僕はこちらのhtpasswdファイル生成(作成)サイトを利用してパスワードを発行しています。
IDとpasswordの欄に任意の文字を設定し生成すると「.password」に必要なプログラムが生成されるので、そちらをコピーして「.password(ローカル環境ではpassword.txt)」ペーストします。
FTPサーバーにアップロードしてBasic認証をかける
上記で作った「htaccess.txt」と「password.txt」を、Basic認証のかけたいディレクトリにアップロードします。
その後ファイル名を
「htaccess.txt」→「.htaccess」
「password.txt」→「.password」
にリネイムすればBasic認証の完成です。
ブラウザでアクセスするとIDとパスワードが求められ、正しく入力するとページが閲覧できる様になったかと思います!
Digest認証って?Basic認証とどう違うの?
Basic認証の上位互換にDigest認証というものがあります。
Basic認証は盗聴されると簡単にIDとパスワードが分かってしまうという欠点があります。
(僕はハッキング技術がないので本当に分かってしまうのか確認ができません…)
そんな盗聴の欠点を補ってくれるのがDigest認証になります。
ただし、SSL/TLS(HTTPS)を使用すればBasic認証のパスワードを送信する欠点を改善できるため、Digest認証はHTTPS通信ができない環境で対策という形になります。
WordPressでページ単体に制限をかけたい場合
ページにパスワードをかけて公開する場合、たしかにパスワードを入力して見れるようになりますが、パスワードの制限がかかるのは管理画面内で書いた情報のみになります。
phpファイルに直接記述して開発している場合はパスワードでの制限しても閲覧されます。
別記事にて書かせて頂いているのでご参考にしてください
「WordPressの特定のページにBasic認証を設定する方法」
Basic認証は簡単なので慣れれば3分くらいで設定できるよ!
やってみましょう