• ベストアンサー

CGIを利用せずにウェブサイトにパスワードチェックをかける方法

契約プロバイダーが指定のCGI利用しか認めていま せん。 CGIを利用せずにウェブサイトにパスワードチェック をかける方法があれば教えてください。 なお、javaでパスワードチェックをかける方法が雑誌に 紹介されていましたが、チェック後に表示されたページ に直接アクセス可能という中途半端なしろものでした。 これでは意味がないですよね。 ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ <HTML><HEAD><META name="robots" content="noindex,nofollow"> <SCRIPT LANGUAGE="JavaScript"> function nameCheck() { var msgPrompt =パスワードを入力してください。 var msgTitle = "Please password here."; var msgWelcome = "WELCOME"; var msgBad = "正しいパスワードを入力してください"; var passWord = "passpass"; var goodLogon = "xxxxxxx.html"; var badLogon = "badpage.html"; var userInput; userInput = prompt(msgPrompt,msgTitle); if(userInput == passWord) { alert(msgWelcome); window.location.href = goodLogon; }else{ alert(msgBad); window.location.href = badLogon; } } nameCheck(); </SCRIPT> <TITLE></TITLE> </HEAD> <BODY onload="nameCheck()"> </BODY> </HTML>

質問者が選んだベストアンサー

  • ベストアンサー
  • sight
  • ベストアンサー率53% (199/370)
回答No.5

補足です。 他にJavaScriptでパスワードチェックがかかっているページのソースを見る方法。 IEならば。 view-source:http://~ という書式でアドレスを指定する。 一番簡単なのは。 ブラウザのJavaScript機能を停止した状態でページを見に行く。 こんなところです。

Koro1st
質問者

お礼

いろいろと教えていただいて大変勉強になりました。 しかし、本当によくご存じですね。 脱帽です。 どうもありがとうございました。

その他の回答 (4)

  • sight
  • ベストアンサー率53% (199/370)
回答No.4

>>JavaScriptはブラウザで動くので、ページのソースを見れば >>パスワードがわかってしまいます。 >とのことですが、例で掲載した JavaScript はパスワードを >求めるプロンプトが表示されるのでブラウザが利用可能になり >ません。したがってソースはわからないと思っていましたが・・ >どうすればわかるのでしょうか? 十分ご質問のソースを読まずに失礼しました。onLoadでパスワードチェックが始まっているのですね。 どうすれば分かるか。 このパスワードチェックのJavaScriptが走るページへのリンクを(ローカルだろうがどこだろうがいいので)作成し、右クリックから「対象をファイルで保存」すれば対象HTMLファイルそのものが取得できるので、ソースも読めます。 >アクセス元を解析して、直リンクできなくする方法があります。 パスワードチェックの時だけ気にするのではなくて、チェック後にとばされた先のページでもアクセス元を気にするというワケですか。確かに。ただ、それは面倒じゃありません?きちっとした業務用サイトならばやるべきなのでしょうが。 なので、そういう使い方するなら.htpasswdと.htaccessの方が楽なんだろうなぁ、と思った次第。 ロボットに関しては、ロボットがマナー通りの動きをすると期待するしかないでしょうね。 プロバイダはNoですか・・・。 残念ですね・・・。確かにKoro1stさんにとってこの件が妥協できないものであるならばプロバイダかえるしか無いのかもしれませんね。

  • sight
  • ベストアンサー率53% (199/370)
回答No.3

No.1のsightです。 >htpasswdコマンドをサーバのOSがサポートしていて、且つ、その利用をプロバイダが というのが、No.2のatonさんのおっしゃっている.htaccess(と.htpasswdを使っての)パスワードロックに当たります。 わかりにくくてすみません。 同じものですので、プロバイダに2つに分けて問い合わせても意味ないのでご注意下さい。

  • aton
  • ベストアンサー率47% (160/334)
回答No.2

 CGI同様プロバイダー依存ですが,「htaccessを使ったアクセス制限」という方法もあります。  詳しくはこの辺を見てみてください。 http://web.arena.ne.jp/suite/support/manual/www-htaccess/ http://www.mikeneko.ne.jp/~lab/cgi/htaccess/auth.html  htaccessを使ったユーザー認証が,件のプロバイダーで利用できないかどうか聞いてみられてはどうでしょうか?  もしそれもだめということなら,sightさんが書かれているような「どこからもリンクが張られていないページを,わかりにくいURLでつくる」くらいしかないように思います。

参考URL:
http://web.arena.ne.jp/suite/support/manual/www-htaccess/
  • sight
  • ベストアンサー率53% (199/370)
回答No.1

>javaでパスワードチェックをかける方法が雑誌に紹介されていましたが、チェック後に表示されたページ >に直接アクセス可能という中途半端なしろものでした。 まず、javaではなくJavaScriptですね。名前は似ていますが、全く別物です。 CGIを用いても普通チェック後のページが分かっていればいけますよ? 普通のperlスクリプトだけで作られたパスワードチェックcgiならば。 それよりも、JavaScriptはブラウザで動くので、ページのソースを見ればパスワードがわかってしまいます。 直接URLをうちこんでもアクセスすることが出来ない、パスワードのかかったページを実現するには、普通サーバのOSのファイル管理システムの力を借ります。 htpasswdコマンドをサーバのOSがサポートしていて、且つ、その利用をプロバイダが許している場合にのみ使用できます。 こういったものが全て使えない場合、一番安全なのはJavaScriptもなにも使わず、秘密にしたいページのファイル名を連想不可能な名前にして、見て欲しい人にだけ教えるということです。(このとき、ロボット型検索ページに登録されないようにHTMLファイルのヘッダ部にロボットを拒否する記述は必要です) 詳しくは、プロバイダのサポートに「ホームページにアクセス制限をかけることが可能か?」と直接質問した方が良いと思います。

Koro1st
質問者

補足

>JavaScriptはブラウザで動くので、ページのソースを見れば パスワードがわかってしまいます。 とのことですが、例で掲載した JavaScript はパスワードを 求めるプロンプトが表示されるのでブラウザが利用可能になり ません。したがってソースはわからないと思っていましたが・・ どうすればわかるのでしょうか? >CGIを用いても普通チェック後のページが分かっていればいけ ますよ? アクセス元を解析して、直リンクできなくする方法があります。 パスワードチェックがかかっているサイトはほとんどそうです・・ >ロボット型検索ページに登録されないようにHTMLファイルの ヘッダ部にロボットを拒否する記述は必要です。 今もそうしているのですが、ロボット拒否の記述は検索エンジン によって違うのでいまいち安心できないんですよね。 □□□□□□□□□□□□□□□□□□□□□□□□□□□□□□ プロバイダのサポートには「No」といわれたので質問したのですが、この分ではプロバイダを変える以外にないようですね。

関連するQ&A