BASIC認証って何だ?BASIC認証をかけてと言われたけど分からない。誰か書き方を教えてくれ!
こんな悩みを解決します。
WEB制作をしていく上でサーバーにアップしているけど見られたくないページだったり、公開前のページにBASIC認証をかけておく事がたまにあるんですよね。WEB制作会社で働いていた時によく使っていました。
簡単に設定する事ができるのですが、割とBASIC認証を知らない方が多かったので本記事ではBASIC認証の書き方を解説していこうと思いますので参考にしてみてください。
前半ではBASIC認証の基礎知識、後半では実際に設定する書き方の手順を解説していきます。
BASIC認証とは?基礎知識を解説
制作段階のページだったりに設定する事が多い機能です。
悲報:セキュリティは完璧ではない
簡単に設定できて便利な機能なのですが、セキュリティは完璧ではないです。
BASIC認証の特性上、ログインするたびにユーザー名とパスワードを送信しますので、httpなどSSL化されていない場合は簡単にログイン情報がわかってしまうんですよね。
httpsなどSSL化してあれば情報は暗号化されますので、少し安全ですが脆弱性のある機能なので機密情報の管理などには使用しないようにするのが無難です。
こういった場面で使えます
BASIC認証はこういう場面で便利です。
- 公開前のページ
- 限定のページ
- クロールされたくないページ
上記のようなページに使うのが最適です。
サーバー上にアップロードすると誰でもアクセスできてしまうので、上記のように特定の方のみが閲覧できるようにするために使用したりします。脆弱性があるとはいえ、SSL化されていれば安全ですので、そんなに気にする必要はないかと思います。
念のため、ログインに使うユーザー名などは普段使用しているものとは違うものを設定しておきましょう。
クロールも回避できる
BASIC認証にはGoogleBotなどのクローラーもブロックする機能がありますので、非公開のページなどは検索エンジンにインデックスされる心配はないので、クローラー避けとしても使用する事ができます。
BASIC認証の書き方の手順【コピペで完成】
書き方の手順が下記です。
- 手順①:.htaccessを作成する
- 手順②:パスワードを作成する
- 手順③:.htpasswdを作成する
- 手順④:BASIC認証をかけるディレクトリにアップロード
やる事としては「.htaccess」「.htpasswd」を作成して、BASIC認証を設定したいディレクトリに2つのファイルを設置するだけです。
順番に解説していきます。
手順①:.htaccessを作成する
今回はサンプル用で上記のように「sample-basic」というディレクトリを作ったので、そちらにBASIC認証をかけていこうと思います。
そうしましたら、ディレクトリ内に「.htaccess」というファイルを作成して下記のコードをコピペしましょう。
.htaccessAuthUserFile ここに「.htpasswd」までのフルパスを記入する AuthName "ID and password" AuthType Basic require valid-user
上記のコードをコピペします。
「AuthUserFile 」の後に「.htpasswd」までのフルパスを記入します。
まだ作成していませんが同じ階層に作りますので、それを想定して記入しましょう。
ディレクトリまでのフルパスの調べ方
ディレクトリに「index.php」などのphpファイルを作成して下記のPHPコードを書くことでブラウザで確認できます。
PHP<?php echo __FILE__; ?>
ブラウザで表示されましたら、下記のようにパスの最後を「.htpasswd」に変更して、先程の「.htaccess」の「AuthUserFile 」の後にパスを書きましょう。
フルパスについては「【簡単】絶対パスと相対パスの違いと書き方を解説【ルートパスとフルパスも解説】」の最後の方で詳しく解説しておりますのでどうぞ。
以上で「.htaccess」の作成は終わります。
手順②:パスワードを作成する
ログインに必要なパスワード作成します。
セキュリティを重視するために、パスワードは暗号化します。
「パスワード暗号化ツール」で暗号化したパスワードを作成できますので、こちらで作成していきます。
設定するIDとパスワードを入力して【生成】をクリック
上の画像のようにBASIC認証に設定するIDとパスワードを作っていきます。僕は今回は両方とも「test」という感じで作っていきます。
あまり深く考えずに簡単なパスワードでOKだと思います。IDとパスワードを入力しましたら【生成】をクリックしましょう。
暗号化されたIDとパスワードが生成されます
【生成】をクリックしましたら、下の方にIDと暗号化されたパスワードが生成されます。こちらのコード使って「.htpasswd」作っていきます。
手順③:.htpasswdを作成する
はじめに作った.htaccessと同じ階層に「.htpasswd」というファイルを作成して、先ほど生成したIDとパスワードをコピペします。
.htpasswdtest:hwEpz/BX.rEDU
僕の場合は上記ですね。これをそのまま「.htpasswd」にコピペするだけです。これでBASIC認証用のファイル作成は終わりです。後はサーバーにアップロードするだけです。
ディレクトリ内はこんな感じ
現在のディレクトリの中身は上の画像のような感じです。
「.htaccess 」「.htpasswd」「index.php」が入っています。
手順④:BASIC認証をかけるディレクトリにアップロード
そうしましたら、FTPなどでファイルをアップロードしていきます。僕は「FileZiila」を使ってアップロードしていきます。
FTPを使った事がない方は「「FileZilla」とは?使い方を解説【インストール方法・使い方・おすすめの設定を解説】」 で解説しているのでどうぞ。
ファイルをアップロードしたら完成です。確認してみましょう。
最後に:BASIC認証が設定できているか確認しよう
しっかりBASIC認証ができているか確認していきます。
実際にアクセスしてみましょう
僕の作成した「sample-basic」というディレクトリにアクセすしてみましたら、しっかりとBASIC認証がかかっていました。
ユーザー名とパスワードを入力しましょう。
ユーザー名とパスワードを入力したら無事にアクセスできました!!!!
こんな感じで、後はログイン情報を共有するだけで誰でもアクセスできるようになります。
IDは「test」でPASSも「test」です!
上手くログインできない方
ログイン画面が出るけど、上手くログインできないという方は「.htaccess」に記載したフルパスが間違っていると可能性が高いの確認してみましょう。
僕も何回か失敗しましたが、フルパスが間違ってました←
以上でBASIC認証の書き方の手順は完了となります。お疲れ様でした。割と覚えておくと便利な機能になりますので抑えておきましょうね。それでは。