• ベストアンサー
  • 困ってます

.htaccessユーザ管理にCGIを使うには?

.htaccessを用いたアクセス制限をしようと思っています。 http://www.kent-web.com/pwd/pwmgr.html を参考に作っています。この例だと、ユーザとパスワードの追加を行う管理者のパスワードを /home/USER/public_html/pwmgr/init.cgi というファイルの中に直に書き込んでいます。このpublic_htmlというディレクトリはweb からアクセスできるので、init.cgiというファイルをダウンロードされてしまうと、勝手にユーザ管理されてしまいますよね? リモートログインができないレンタルサーバを使用していますが、ユーザ管理を厳重にするにはどうすればよいのでしょうか? .htaccessで保護されているディレクトリに管理用CGIを置けばよいようにも思いますが。。。

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数364
  • ありがとう数2

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

  • ベストアンサー
  • 回答No.1

「init.cgiというファイルをダウンロードされてしまうと」とありますが、これはどういう意味で書かれていますか? サーバーのセキュリティホールなどでサーバ上のcgiファイルの内容を読み取られるような状況を想定していますか? そうであれば「web からアクセスできるので」というのはほとんど関係ないかと思います。 そうではなく、漠然と「普通のファイル(htmlとかzipとか)をサーバからダウンロードするみたいにCGIファイルそのものもダウンロードされたら。。。」と考えているならば、それは単に知識が不足していることかと思います。 (Web関連を学び初めた頃の私自身がそんなかんじでしたが) 後者だとして続きを書きますが、 HTTPでクライアントからサーバにクリエストが行われる際、クライアントは基本的にはパスと要求方式(GET/POSTなど)をサーバに送ります。 (リクエストヘッダはその他いろいろありますが、この話の中ではあまり重要でありません。) 要は、クライアントは「ダウンロードアクセスする」とか「実行を要求する」とかを指定する要求の方法はありません。 サーバはリクエストを受けたら指定されたパスによって何を行うかを決定します。 (必ずしもサーバがそのパスをファイルパスとして解釈する限りません。解釈はサーバソフトウェア次第です。通常はいろいろ設定出来るようになっています) パスをファイルパスとして解釈する場合、多くのサーバソフトでは拡張子によって何をするかを決定します。 たとえばhtmlやzipであればファイルの内容を読み取ってクライアントに転送するとか、cgiであればそれを実行した結果(GCIからの標準出力への出力内容)をクライアントに転送するとか、です。 (いちおう補足を行って起きますが、JavaScriptの場合であればjsファイルをそのままダウンロードしてクライアントのブラウザ上で実行が行われますが、GCIはサーバ上で実行が行われてその出力結果をクライアントに転送します) 拡張子がcgiでも実行を行わずにそのファイル内容(ソースコード)をクライアントに転送するよう設定を行うこともできますが、あくまでサーバ側での話です。 cgiの内容が転送されるような設定ならば、そもそも誰も(管理者も)管理用CGIを実行出来ないでしょう。 (requireされるファイルの拡張子がcgiである必要はありませんが、参考にされているGCIのサイトの例でcgiとしているのはこのことが要因かと思います。つまり、cgiが実行出来る環境であればinit.cgiの場所に直接アクセスされても実行されてエラーになるだけですむ、ということでしょう) このあたりは、自分でApacheなどのサーバソフトをローカルPCにインストールして動かしてみると理解が深まるかと思います。 上記のことを理解した上でも、管理CGIを保護された場所に置くことは意味があると思います。 BASIC/Digest認証を通過したひとしかアクセスできなくすれば推測によるログイン試行されることもかなり減るでしょうし、2段構えになりますので。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

大変詳細かつ、含蓄の深いご回答をありがとうございました。 cgiという拡張子が重要であることがわかりました。 KENTさんの本にも、ダウンロードされたくないファイルには拡張子cgiをつけるという方法が紹介されていました。 また、管理用CGIを.htaccessで保護されている場所においた方がよいこともわかりました。 今後ともよろしくお願い申し上げます。

関連するQ&A

  • BASIC認証式パスワード管理で質問

    お世話になります。 http://www.kent-web.com/pwd/pwmgr.htmlでPASSWORD MANAGERの設置をabcd.com(仮称)のxyzディレクトリにしようとしています。 レンタルサーバーでフルパスを教えてもらい '/home/abcd/public_html/abcd.com/xyz/にファイルを設置し、.htaccessはアクセスを制限するディレクトリmemberにおきました。 http://www.abcd.com/xyz/pwmgr.cgi?mode=checkでチェックしたところ 下記のように合格しました。 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー チェックモード 会員ファイルパス OK! 会員ファイルパーミッション OK! アクセスログ (使用する場合)パス OK! アクセスログ (使用する場合)パーミッション OK! パスワードファイルパス OK! パスワードファイルパーミッション OK! sendmailパス OK! ロック形式 → mkdir ロックディレクトリ → ./lock ロックディレクトリパスOK! ロックディレクトリパーミッション OK! バージョン → PasswordManager v2.23 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー ところが、http://www.abcd.com/xyzと入力し、index.htmlに接続しようとすると、ユーザ名とパスワードを聞いてきますが、エントリーできません。init.cgiで設定した管理者用のパスワードの入力ではだめなのでしょうか?プロバイダで設定したパスワードでもだめでした。 どなたか教えてください。M(__)M

  • cgiなんですが....

    http://www.kent-web.com/data/mart.html cgiの買い物かごシステムなのですが、下記のディレクトリ構成例のpublic_htmlってなんでしょうか?自分のレンタルサーバーではトップページ を表示するにはftpソフトでつなぐとhttpdocsってホルダにindex.htmlをいれますが、そこにpublic_html って書いていれれば、いいのですかね?cgiつくりにダウンロードしたものはmart.cgi,mart_order.cgi ,mart_admin.cgi mart_init.cgi ,mart.dat ,mart_raw.txt mart.html なんですが、public_html っていうのがみあたりません。 public_html のフォルダの中にホームディレクトリ?がある構成に見えるし、なんでしょう?mart / mart.cgi [755] mart_order.cgi [755] mart_admin.cgi [755]mart_init.cgi [644] jcode.pl [644]mart.dat [666] mart_raw.txt [644]cgiのフォルダにpalのパスかえたり、してパーミッション設定してあげれば、良いのでしょうか?絵では下のような説明になっています。 【ディレクトリ構成例】 public_html / (ホームディレクトリ) | +-- mart / mart.cgi [755] mart_order.cgi [755] mart_admin.cgi [755] mart_init.cgi [644] jcode.pl [644] mart.dat [666] mart_raw.txt [644]

    • ベストアンサー
    • CGI
  • CGIで分からない事があります

    HPを作成しようとしている素人です。 KENT-Web 様の パスワード制限をダウンロードし 下記に従って変更しましたが、 http://www.kent-web.com/pwd/login.html 500 Internal Server Error 実行エラー CGIの実行時にエラーが発生しました が出てしまいました。 どうすればいいのでしょうか。 教えてください。

  • ホームページのパスワード制限をcgiで行う方法

    会社の同好会のWebサイトを作ることになりました。Kent webさん(http://www.kent-web.com/)からパスワード制限のcgiを使わせてもらいパスワードのページを作りましたが以下の点を変更できないか誰か教えて下さい。 (質問) Webにアクセスしたとき最初のページでパスワード入力を行いたいのですが可能でしょうか?Kent Webさんからのパスワード制限cgiはlogin.cgiというファイルにアクセスするとパスワード入力画面が出てきます。Webの最初のページはindex.html(home.html)等と決まっているので最初にlogin.cgiにアクセスするわけにはいかないと思いますが、クリックの数が一手間増えるので何とかならないかと思っています。

  • メールフォームにパスワード自動発行機能

    ある会員サイトを作ろうと思い、メールフォームにパスワード自動発行の機能を持たせたいと考えています。 KENT-WEB(http://www.kent-web.com/)様で配布されている、 PasswordManager(http://www.kent-web.com/pwd/pwmgr.html) が一番理想に近いのですが、パスワード発行ページに入力必須項目 を増やすことが出来ません。 どうすれば可能でしょうか?どなたか教えてください。

    • 締切済み
    • CGI
  • レンタルのcgiでパスワード認証ができるもの

    レンタルcgiでパスワード認証ができるものを探しています。 ここの過去ログを見るとフリーのhttp://www.kent-web.com/pwd/index.html さんのをよく見かけますが、これではなくレンタルのやつを誰かしりませんか?

  • ローカルでCGIのテストに息詰まっています

    こんにちは、BoOoOoOoといいます。 ローカルでアクセス制限のCGI設置の練習をしているのですが、恥ずかしながらフルパスのところで息詰まってます。 KENT-WEBさんのCOSMO GATE-EXというCGIでテストしています。そこにある設置方法の説明を見ながら、何度もディレクトリとファイルの場所を移動して、エディタで編集してるのですが、....cgi?mode=check で確認するとエラーが出てしまいます。 環境は、サーバーソフトがhttpdで、ブラウザIE、OSがWin98です。 フルパスについて、どのCGI配布サイトにも説明してるので理解してるつもりがしてないようなのです。 ディレクトリ構造は、 C/httpd/home   |   +--private /secret.html   |      file01.html   |      file02.html   |      pass.txt   |      log.dat   |   +--public /index.html        |        +cgi /gatex.cgi となっていて、gatex.cgiの中の$dargetdir=に認証後に 移動するディレクトリを指定してくださいっとあったので、説明どおりに$dargetdir="/home/private";としたの ですが、「/home/private/pass.txtは見つかりません」と なります。何が悪いのか、わからないのでアドバイスをよろしくお願いします。 長文、すいませんでした。ちなみに、↓このCGIを使わせてもらっています。 http://www.kent-web.com/pwd/gatex.html?

    • 締切済み
    • CGI
  • .htaccesswでアクセス制限をかけた時。

    .htaccesswでアクセス制限をかけたWebページ(メンバー用)を考えていますが、どのメンバーがいつログインしたかを知るにはどういう方法があるでしょうか? KENTさんのBASIC認証タイプ(PasswordManager)で実現出来れば良いんですが。 http://www.kent-web.com/pwd/pwmgr.html よろしくお願いします。

  • アクセス制限ページ

    http://www.kent-web.com/pwd/pwmgr.htmlで、(会員制の)アクセスを制限するページを作成したいと思っているのですが・・・・ 説明が難しくてわかりません。 中級者ぐらいでもわかるアクセス制限ページの作成方法を教えてください。(BASIC認証タイプ) よろしくお願いします。

  • cgiの改造なんですけど助けてください

    KENT WEBでGateWayBoardをDLしました。 http://www.kent-web.com/bbs/gwbbs.html? おかげさまで問題なく設置はできたんですが、この掲示板の改造をしたいので教えて下さい。 その1 レスをスレッドの下に付けたいです。 レスが上に付くのでかなり見づらいです。 できればスレッドと段違いで下にレスが付くと助かります。 その2 一度、書き込みすると少し時間がたたないと同じ人は書き込みできません。 これも時間たたなくてもすぐ書き込みできるようにしたいです。 その3 IDとPASSを認証するページのデザインを http://www.kent-web.com/bbs/gwbbs/gwbbs.cgi (掲示板…GateWayBoard) から http://www.kent-web.com/pwd/gatex/gatex.cgi (パスワード制限…COSMO GATE-EX) に変更したいです。 色々と試したんですができないので教えて下さい。 よろしくお願いします。

    • ベストアンサー
    • CGI