先日、Waveboxのメッセージで感想とともに鍵付き(パスワード)ページ機能のご要望をいただきました。
Waveboxでメッセージをくださる方は返信不要だとは思うのですが、今回はちょっと考えることがあるので整理するためにも記事にしました!
この記事の要約:
- スクリプト作ろうと思います
- PHPで作ろうと思います
- PHPなので注意事項があります
鍵付きページ機能は可能か
WordPress等のCMSを使わずに個人サイトで鍵付きページを作るには少々技術が必要だったりします。
CMSはハッキング対策や画面からパスワードを保存できるように便利に作られています。
なのでサイトに鍵をかけたいときはCMSがおすすめです。
ですが、CMSを使わずにちょっとした鍵をかけること自体は可能です。
良い機会なので、鍵付きページに個別の鍵をかけるためのスクリプトを作ろうかと思います。
簡易的なものなので、商用サイトで使うような堅牢さはありませんが、
↓のようなものは実現できるかと思います
- 画面を開いたときにパスワード入力フィールドが出る
- パスワードを入力しないとコンテンツは見ることが出来ない
- 入力したパスワードが合っていれば、コンテンツを見ることが出来る
ただ、これを実現するにあたりJavaScriptだけでは対応できない部分があるので、今回はPHPを使います。
どうしてPHP?
どうして今回はPHPも用いるのか、という点について少しお話します。
JavaScriptは閲覧者さんの端末上で動くので、スピーディに名前変換をしたり、閲覧者さんが入力したテキストをネット上に送信させないようにできる(本館で配布している名前変換スクリプトの場合です)一方で、サイト運営者さんがコンテンツを隠すのには向いていません。
JavaScriptは、プログラミングのわかる人の場合はブラウザから動きを止めたり、プログラムのソースコードを見ることができます。なので、JavaScriptだけで鍵っぽい動きを作っても、閲覧者さんの技術によってはブラウザからパスワードリストをチェックすることができてしまいます。
これに対して、PHPはサーバーサイド言語です。
PHP等のサーバーサイド言語でできたプログラムは、ネット上(この場合はレンタルサーバのコンピュータ上)で動きます。
PHPはネット上で動くので、閲覧者さんのブラウザから直接ソースコードをチェックしたり操作することはできません。
また、閲覧者さんからのパスワードの照合ができるまで、コンテンツを隠すこともできます。
このようなパスワード認証はPHP以外のサーバーサイド言語でもできるのですが、PHPはHTMLとの親和性が高いのと、個別のページに導入しやすいので今回はPHPを使います。
レンタルサーバについて
JavaScriptは閲覧者さんの手元の端末で動くので、ほとんど環境を選ばないのですが、PHPを使うにはPHP等のサーバーサイドの言語が動くレンタルサーバーが必要になります。
多くの有料レンタルサーバではPHP等のサーバーサイド言語のファイルを扱うことが可能ですが、無料サービスで有名なFC2ホームページでは利用することができません。(FC2レンタルサーバーなら使えるようです)
どんなものを作るか
上でも書きましたが、このような機能を作ろうかと思います。
- 画面を開いたときにパスワード入力フィールドが出る
- パスワードを入力しないとコンテンツを見ることが出来ない
- 入力したパスワードが合っていれば、コンテンツを見ることが出来る
実装方法はいろいろあるのですが、ファイルを分けると管理が複雑になりそうなので、(やや無理やりですが)PHPファイル1つの中に必要なパスワードリスト, HTML, CSS, JavaScriptもまとめようかと思います。
こういうものを盛り込みます。
- パスワード入力フォーム
- パスワードリストなどの設定
- 鍵ページのパスワード認証がうまくいったら、ブラウザを閉じるまでは再認証しない処理
鍵をかけたいページの上部で、このPHPファイルを読み込むだけで使えるようになる予定です。
必要な対応
PHPでのパスワード導入にあたりデメリットといいますか、避けられないこととしては以下があります。
- パスワード式にしたいページはPHPファイルにする必要がある
例:novel.html から novel.phpへの変更 - 動作させるにはPHPが使えるサーバを用意する必要がある
- パスワード式にしたいページすべてでパスワードスクリプト本体を読み込む必要がある
- 古いPHPバージョンの環境では動かない
まだ色々と構想中ですがPHP7以降対応にしようかと思っています。
パスワード式にしたいページはPHPファイルにする必要がある
こちらについては、サーバの設定によっては.htmlのままでも動かせますが、基本的には.phpへの変更が必要です。
動作させるにはPHPが使えるサーバを用意する必要がある
レンタルサーバについて、でも書きましたがPHP対応のサーバが必要です。
これは公開するサーバに限らずの話で、手元のパソコンで動きをチェックする場合も、手元のパソコンにPHPが動く環境が必要になります。
手元のパソコンで.htmlファイルを開いて動作確認、その後はFTPソフトでアップロードという方法をとっていた場合、サーバとしてパソコンを動かさないとアップロード前の動作確認はできなくなります……!
レンタルサーバ上で一時的に動作確認用のフォルダやページを作っていただくか、パソコンにPHP環境をインストールする必要があります。
配布予定
配布予定日はまだ決まっていませんが、出来上がり次第どこかでお知らせして配布します。
本館にスクリプト専用ページを作る時間がとれなそうであれば、このブログ内でコードをご案内するかもしれません。
気長にお待ちください!