覚書 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 を、どうやって安全に隠すのか、を、サーバ屋さんでそういう情報を出してくれている人が居ないか、検索してみようと思う。

PayPal Here は、現在登録できません。

正確には、ソフトバンクでの、本人確認は無問題で登録できてます。
ので、プレミアアカウントにして、PayPal支払いのボタンを付けて、そこからちゃんとPayPal口座へ送金はおこなわれる、ハズです。
が、PayPal Hereへの紐付けなんだか、どこがどーしたのか、説明が無いので、何もわかりませんが、とにかく、アプリは「サポートに連絡しろ」と出て、PayPal Hereのサポートに電話したら「多発していて、アプリの入れ直しなどでダメな時はどうしようもない。アプリのサポートはPayPalサポートに電話してくれ」とたらし回しにされます。
そんなわけで、PayPal Here購入、までは進んでますが、導入に至っていません。いつになるか不明。
なので、利用者側に、PayPalへの登録を強いることになりますが、PayPal支払いも可、という仕組みで構築していこうと思います。
あとは、ニコニコ現金払い、ですかねぇ…。まだ郵便振替口座って、生きてるかなぁ…。もっかい開設しますかね。。。

Macは関係無いですが…HTML5を、ちょっと使ってみる。

カレンダーを、手軽に置いておきたい、というだけで、アプリを探すのが面倒、てことがあるかも?
というわけで、HTML5を使ったら、とりあえずローカルファイルにして、ブラウザで確認できます。

そんなわけで、ソースコードを書いてみる。しかし残念ながら、Safariではまだ動かないっぽい…。Chromeとかで開いてみてください。

不要なところは、適当に消して、動作すればそれでOK。文字コードはUTF-8で、cal.htmlとかで保存しましょぉ。


<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<title>HTML5 Test Site</title>
<meta name="description" content="" />
<meta name="keywords" content="" />
<meta name="author" content="authorName" />
<meta name="copyright" content="Copyright (C) MacOS.JPN.com" />
</head>
<body id="siteID" class="topBody">
<div id="page">
万年カレンダー<br />
<input type="date" />
<hr />
<p class="copyright"><small>Copyright &copy; 2012 MacOS.JPN.com All Rights Reserved.</small></p>
<!-- / #page --></div>
</body>
</html>