iPhone 2017 予約状況 その1

予想的には、そもそも、iPhone X 待ちが6割ぐらいなのでは、と。。。

覚書 Basic認証

OSX の Server.app を使っても、Basic認証などは、結局ターミナルだの、手作業が必要となる。自分の覚書を兼ねて、たまにはサーバー関連のことを書いておく。

先日来、お仕事就業先で、“htaccess は使えるようにしてるけど、非公開ディレクトリは使えないから、Web root 以下で、htaccess で、適当にdeny してくれ”という、めんどくさいというか、中途半端なサーバをハード的にしか管理してくれないところに、Webを置くことになっている。

そこで、Basic 認証を安全に動作させるために、無い頭を捻って考えた。

まず、htpasswd を置くディレクトリを、root 直下に作成する。
_dir とか、セキュリティ的に気になるなら、ランダム16桁ぐらい生成してみて、ディレクトリにしても良いだろう。
そこに、まずは htaccess.txt などで htaccess用ファイルを生成。

order deny,allow
deny from all
allow from localhost

が最小限で、もし、自宅サーバなどで192.168~ で入れる、などあるなら、
allow from 192.168.0.0/8
など、適宜設定。
htaccess.txt を、.htaccess へ書き換えて設置完了。
これで、このディレクトリ以下は、同一サーバ内からのアクセス(と、追加したIPやドメインがあれば、そこから)だけが許可されるようになる、ハズ。
スマートフォンなど、確実に外部環境になるモノから、アクセスして確認してみよう。

次に、同じディレクトリに、htpasswd.txt を生成。
パスワードの生成だが、Macを使ってるなら、Apache が動作中なので、ターミナルを起動して、いきなり
htpasswd -c /Users/Shared/passwd.txt [UserName]
とか打って大丈夫。[UseName] は、各自、設定したいユーザー名を入れること。
Password の設定行になるので、適宜設定。
再入力して、パスワード生成完了。
/Users/Shared/passwd.txt を開いたら、1行ユーザー名:パスワード が生成されているので、それをコピー。
htpasswd.txt
へペーストして、保存。

htpasswd.txt を、上記htaccess制限したディレクトリへ移動。.htpasswd へ書き換えて設置完了。

続いて、Basic認証させたいディレクトリへ移動。
ここでも、htaccess.txt を生成。
今度は、
AuthUserFile /root/web/user/_dir/.htpasswd
AuthName ” sec.area ”
AuthType Basic
require valid-user
などという、最低限の設定を書く。

見て予想が付く人も居るかと思うが、AuthUserFile に続く
/root/web/user/_dir/
などは、URLではなく、サーバでのフルパスが必要となる。

これが、不明な場合は、_dir 内などで、phpinfo を置いて、PHPの情報を確認すると、フルパスが判明する。このphpinfo ファイルがある位置がわかりやすいだろうから、
SCRIPT_FILENAME
あたりを見れば、フルパスが表示されているだろう。

htaccess.txt を、.htaccess へ書き換えて設置完了。

なお、設置完了と同時に、.htaccess は効くため、すでに公開中のディレクトリへ設置したい時は、一旦、上記4行の頭に # を付けて、コメントアウトとしておいて、設置。
認証エリアとなることを周知してから、 # を削除して保存、という手順を踏む必要がある。

と、別に習ったわけではないので、どっかに穴があるかもしれませんが、Basic認証自体は、これで動作しているのを確認。
.htpasswd を、どうやって安全に隠すのか、を、サーバ屋さんでそういう情報を出してくれている人が居ないか、検索してみようと思う。