PHP

2012-10-12, php discuss

認証方式について考察

いずれもPHP特有の仕組みではありませんが、ウェブアプリケーションの認証方式としてBASIC(DIGEST)認証があります。Apacheの設定ファイルに認証が必要な範囲とユーザ情報を記載し、httpのヘッダ情報で認証状態をやりとりすることができます。ログイン用のダイアログはブラウザに備えられているものが表示されます。

ログインページを作らなくてもよかったり、ディレクトリ単位での一括した管理ができるため、とりあえず鍵をかけておこう、というシーンではそれなりに役立ちます(パスワードの平文送出などに気をつけなければなりませんが)。しかし、最近iOS上のSafariやChromeでアクセスする機会が増えたのですが、何故かこの認証情報は記憶してくれないのですね…。毎回ユーザIDから入力するのが少々面倒です。

出所を失念してしまいましたが、http://user:pass@example.comのような形式のURLでBASIC認証を通過出来る事を利用して、フォームに入力されたID、PASSを上記形式にリダイレクトする力技スクリプトを公開されている方もいるようです。

今回は結局フォームによる認証ページを自作することにしました。先述のDIGEST認証のようにパスワードをハッシュしてからSUBMITするように作った方が良いのかもしれませんが、それよりはSSL接続を強制する形で平文送出のリスクを減らしたいと検討しています。

参考URL

この記事は役に立ちましたか?