2004.10
相当大まかな考え方
パスワード制限の頁を作ろうと思ったら、色々と方法がある。
1:簡単にホームページビルダー8でパスワード制限する
2:JavaScriptで制限する
3:CGIで制限する
4:.htaccessで制限する
これらには特徴が色々とある。
1:簡単にホームページビルダー8でパスワード制限する(実はJacaScript)
2:JavaScriptで制限する
基本的にJavaScriptで制限の場合には、ソースを見ると見破られてしまう場合がある。また、リンク元からリンク先へと飛ぶ場合にはパスワード制限がかかるが、リンク先の頁自体にパスがかかっているわけではないので、リンク先の頁に直接飛ばれた場合にはパスワード制限はされない。また、相手のPCにJavaScriptがオンになっている必要がある。
3:CGIで制限する
CGIで制限する場合には当然CGIでの制限を許可しているサーバーである必要がある。CGIの使用は認めていても隠し頁を認めていないサイトも多いので注意。(細かいところはまだ実験していないので後日)
ちなみにこちらが検索で引っかかってきました→KENT WEB
(ここは色々あるのにゃ。何か検索するたびに出てくるのにゃ)
4:.htaccessで制限する
これもCGIと同じく.htaccessでの制限を許可しているサーバーである必要がある。CGI,.htaccessともに、自分のプロバイダであっても、許可していない場合もあるので注意。逆に自分で設置せずとも有料で付いてくるところ(nifty)もある
と言った感じである。なので、自分のスキルと用途に従って、どういったパスワード制限を使用するかを考えるとよいでしょうね。特に、niftyの人であれば、有料オプションを使うのが一番確実なのではないかと思う(掲示板なんかも付いてくるしね)。また、簡単な隠し頁で良いのであれば、http://members3.tsukaeru.net/hotamaro/******.htmlの******部分をクイズ制にして、URLを直接打ち込ませるのも有効でしょう。
また、パスワード制限をレンタルしているところもある。リンク元→パスワードレンタル→リンク先という形で、間に噛ませるスタイルです。ただし、これもJavaScriptと同じで、URLを直接入力されると効かなかったような気がします。
素敵なレンタル屋さんはこちら→eucaly.net
JavaScriptで制限してみる
まずHPビルダーを持っている人は、そのままビルダーのパスワードで良さそうです。パスワードも暗号化されているので、普通の人にはソースを見ただけではわからない(らしい)。なので、リンクを貼るときに「パスワード付きリンク」を選ぶだけです。
JavaScriptで制限するにはソースが必要なわけですが、色々検索してみた結果、
こちらのサイト↓が便利でした。
1:イヌでもわかるJavaScript講座内 パスワード制限
2:イヌでもわかるJavaScript講座内 パスワード制限2
3:イヌでもわかるJavaScript講座内 秘密の裏口を作る
4:イヌでもわかるJavaScript講座内 パスワード制限3
内容ですが、1:パスワード制限はソースを見るとばれてしまうらしい。
2:パスワード制限2はその暗号化。
3:秘密の裏口を作るは、カーソルも変わらず左下にもURLがでないリンク方法。
4:パスワード制限3は、ファイル名自体をパスワードにしているので、ソースを見てもわからない。
これが一番、便利そうでした。
JavaScriptはとにかくソースを見られるとアウトだという話が多かったのが、4の方法であれば、大丈夫そうである。ただ、JavaScriptの弱点として、上にも書いたとおり、URLで直接飛ばれた場合には制限はかかりません。そうすると、万が一検索に引っかかった場合はそのまま入ることが出来ることになるので要注意でしょう。
それを防ぐにはどうするかというと、.htaccessの出番になってきます。
.htaccessで制限してみる
.htaccessの場合、上にも書いたとおり、サーバーが認めているかが重要です。サーバーに負担がかかるらしいので、.htaccessについての注意書きがないかどうかよく調べ、わからない場合はmailで質問しましょう。また、自分のプロバイダの場合、hpスペースを申し込んだ段階で、冊子を送って来てくれる場合もあるので、それを熟読。
(うちのプロバイダはさくっと駄目でした。CGIも不可)
さてhtaccessですが、どのようにやるかというと、
参考→とほほのWWW入門
とほほのWWW入門内、アクセス制限についての頁
.htaccess実践活用術
.htaccess実践活用術内、.htaccess活用法(1)
細かいところは上記のサイトを見て貰うにしても、自分が一番困ったのは、現在何をやっているかさっぱりわからない、ということなのだ!!。
なので、実際に行っていく流れを説明と共に書き出してみる。
1:ひたすら、実験の出来る.htaccess許可プロバイダを探しまくる。
こんな所から探しまくりました→タダでつくるホームページ
→無料サイト集
ちなみにここは大丈夫そうです→RedBlueWebServer
→SELFPLACE.NET
→momoサーバ
2:.htaccessとは何ぞと言うことを知る
3:.htaccessに欠かせないらしい絶対パス名を探す
4:.htaccessをメモ帳で作成してみる
5:相方となる.htpasswdをメモ帳で作成してみる
6:FTPでネットに転送する
まず最初はいいとしても、そもそも.htaccessとはどんな感じのものかというところである。
2:.htaccessとは何ぞと言うことを知る
.htaccessは.htaccessというファイルらしい。何時もHPを作るときにusagineko.gifだとか、index.htmlだとかそういったファイル名があるが、.htaccessは.htaccessというファイルらしい。拡張子は何もない。というよりも、拡張子しかなく、ファイルの固有名は無い。(ちょっと忍者みたいだ…)
当然、ビルダーなんかで作るわけにはいかないので、メモ帳で手書きで作らねばならない。(でも行は少ないので簡単)
そして、その時に作るファイルは2つ。.htaccessと相方の.htpasswdである。
.htaccessは、「ユーザー名とパスワードを入力してください」というようなダイアログを表示させ、かつ入力されたパスが正しいかどうか確かめる為に、.htpasswdに問い合わせるファイル。そして.htpasswdにはパスワードとユーザー名のみが書いてあるファイルである。クイズを出す係と、答えを知っている係という感じですな。クイズを出す係の方には答えが書いていないので、ファイルを見てもパスはわかりません。また、答えのファイルは暗号化された答えが書いてある(はず)なので、これも見られても分からない(はず)。←絶対ではないらしい。
この.htaccessを使用したBasic認証(.htaccessはアクセス制限など、他にも色々出来るらしい)によって、.htaccessのある階層より下のファイルを制限することが出来ます。
例えば、kosugi(小杉)というフォルダがあって、さらにそのkosugi(小杉)の中にsumomo(スモモ)というフォルダがあるとします。kosugi(小杉)の中に.htaccessファイルを置けば(つまりスモモと並列)、kosugi(小杉)の中の頁にアクセスしようとすると、パスワード入力を求めるダイヤログが出てきます。
簡単に言うと、パスワード制限したい頁やフォルダは全て一つのフォルダ(例えば小杉)に入れて、その小杉フォルダの中に.htaccessも入れてしまえばOKな訳です。
3:.htaccessに欠かせないらしい絶対パス名を探す
絶対パス名は.htaccessを許可しているサーバーであれば、必ずどこかに書いてあるものだそうなので、FAQなどで探してみて下さい。これが無いと非常に不味そうです。
/ppi/web/tree/kosugikun/ (kosugikunはユーザー名)
などの形で書かれているいます。(ちなみにURLとは違うので注意)
4:.htaccessをメモ帳で作成してみる
次に.htaccessファイルと.htpasswdファイルを作ります。まずは.htaccess(クイズを出す係)からです。
↓は.htaccessの記述例です。このままだと意味不明なので、意味を書いてみましょう。
AuthUserFile /ppi/web/tree/kosugikun/.htpasswd AuthGroupFile /dev/null AuthName "呪文を唱えよ" AuthType Basic require valid-user |
1行目:AuthUserFile /ppi/web/tree/kosugikun/.htpasswd
AuthUserFile…クイズの答えのファイルはここに有りますよ、という意味。
/ppi/web/tree/kosugikun/.htpasswd…クイズの答え係のファイルを絶対パスで記述。
2行目:AuthGroupFile /dev/null
AuthGroupFile…グループごとにファイルを代えるかどうか。
/dev/null…そんなことはしないのにゃという意味。
3行目:AuthName "呪文を唱えよ"
AuthName…ダイヤログに表示される言葉
"呪文を唱えよ"…実際にダイヤログに表示される言葉。日本語だと文字化けすることがあるらしいので、"please
enter your ID and password"などの表記の方が無難です。
4行目:AuthType Basic
AuthType…認証はこういう認証を使ってますという意味。
Basic…Basic認証でござるよ、という意味。Digestの場合は、ここにDigestと書く。
5行目:require valid-user
登録してあるIDとパスワードの組み合わせがあっていれば、大丈夫と言う意味。複数のIDとパスを用意し、koganei(小金井)というIDの人はOKだけど、sakai(境)というIDの人は駄目ですよ、という使い分けをしたい場合は記述が異なる。
つまりこのひな形通りで良い人は、
AuthUserFile /ppi/web/tree/kosugikun/.htpasswd AuthGroupFile /dev/null AuthName "please enter your ID and password" AuthType Basic require valid-user |
このキミドリの所を、自分が.htpasswdを置いた住所の絶対パスに書き換えるだけです。他にグループ制にしたかったり、何かを代えたりしたい場合は、下のサイトなどを参考にされるとわかりやすそうです。
参考:
.htaccessでBasic認証
アナハイムエレクトロニクス内のCGIなどに関する質問 (アナハイムエレクトロニクスはレンタルサーバー屋さんですが、Q&Aの所の解説が非常にわかりやすかったです)
この.htaccessファイルは、メモ帳に記述して、名前をつけて保存してください。その時の名前が.htaccessです(ドットに注意!)。普通に保存をすると拡張子*.txtが付いてしまうので、ファイルの種類のところで「すべての種類」を選んで下さい。うまく行かない場合は、FTPの時に変更すれば良いので、そのままにしてココロの棘として覚えておいてください。
(ビルダーを使っている人もメモ帳で作るのだ!!)
5:相方となる.htpasswdをメモ帳で作成してみる
次に.htpasswdです。つまり解答編です。これは拍子抜けするほど簡単です。
sakai:PXir9sRh84H% |
これだけです。これも意味がわからないと思うので解説をすると、
sakai:…ID
PXir9sRh84H%…暗号化されたパスワード。
つまり、sakai(境)というIDを持つ人のパスワードをmoyashi(もやし)と決めたとします。
その時にID:パスワードの形で記述をするだけです。ですから、koganei(小金井)という人のIDをrorikon(ロリコン)とするならば、
koganei:NYef7wJh85H$ |
などとなるわけです。
パスワードはrorikon(ロリコン)やmoyashi(もやし)であるはずなのに、何故PXir9sRh84H%などの訳の分からない文字列になっているかと言えば、PHPプログラムで暗号化しているからです。この暗号化は簡単です。パスワードにしたい文字(moyashi)を打ち込んで変換とボタンを押すだけで勝手に変換されます。
こちらのサイトでアップされているので、使わせて頂くと便利です。
↓
.htpasswdでBasic認証(真ん中当たりのPHPプログラムという青字)
この.htpasswdファイルも、メモ帳に記述して、名前をつけて保存してください。その時の名前が.htpasswdです(ドットにはやはり注意!)。.htaccessの時と同じように、普通に保存をすると拡張子*.txtが付いてしまうので、ファイルの種類のところで「すべての種類」を選んで下さい。
6:FTPでネットに転送する
二つを適当なフォルダに入れておいたら(自分でわかるようになっていればOK)、FTPを起動してサーバーに接続してください。ビルダーを使用している人は、ツール→FTPツールの起動でFTPが立ち上がります。
FTPでサーバーに繋がったら、アスキーモード(別名:テキストモード)で転送をします。これも簡単です。
アスキーモード:テキストを転送する時に使う。拡張子がtxt、html、splなど
バイナリモード:画像を転送する時に使う。拡張子がgif、jpeg、pngなど
ビルダーの場合は、FTPを起動すると左側にPCの中身、右側にサーバー側に置いているファイル名が出てきます。左と右の間、つまりど真ん中にボタンが3つ有るはずです。そのボタンにカーソルを合わせると「常にバイナリモード」「常にアスキーモード」など説明が出ます。「常にアスキーモード」(ABCD→ABCDになっているボタン)を選んで下さい。(ビルダー8では一番下のボタン)
FFFTPを使用している場合は、上のツールボタンにA、B、AとBが一緒になっている3種のボタンがあります。そのうちA(アスキーモード)のボタンを押してください。
そして左の一覧から.htaccessファイルを選び、転送します。
この時に、最初の方に書いた、制限をかけたいフォルダの中に転送する事を間違えないようにしてください。制限をかけたい頁やファイルは全て一つのファイルに入れて、その同じファイルに.htaccessを転送します。
(左や右の一覧に、お目当てのファイルが無い場合は、当然上のドロップダウン(▼マーク)から探してください)
そして.htaccessも自分で指定した場所に転送してください。
FFFTPを使用されている方はこちらのサポート頁が便利です→FFFTP Support Page
ホームページビルダーの方はこちらの頁がわかりやすいです→HOME PAGBUILDER(FTPの頁をどぞ)
これでタブン完成。
実験してみてください。
もう一捻り
フォルダごとに違うIDと違うパスワードで指定したい場合は、.htpasswdの名前を変えるということで対処出来るようです。
.htaccess…このファイルをおくと、その階層に認証がかかる
.htpasswd…名前を変えることが出来る(例:.htpasswda、.htpasswdb)
つまりは別種のパスワード認証をしたい場合は、.htpasswdの名前を変更し、そのアドレスに照会するように.htaccessの絶対パスを書き換えれば良いわけです。