![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_06.png?8acaa2e)
ISPにwakwakを使用しているのですが、cgi-binディレ
クトリ配下に置いてある掲示板に対してアクセス制限
をかける方法が無いか探しています。
wakwakの仕様で
・cgiはcgi-binディレクトリ配下にのみ設置可
・htaccessはcgi-binディレクトリ配下では動作不可
というようになっておりお手上げ状態です。
htaccessで制限出来るディレクトリにリンク用のhtml
を置いて、そこからじゃないとcgiディレクトリに飛べ
ないようにすればと思ったのですが、どうもcgi-bin
ディレクトリ(というかCGIに対して)直接アクセス制限
が出来るものが見つからず困っております。
どなたかお詳しい方がいらっしゃいましたらヒントだけ
でも頂けると幸いです。
No.5ベストアンサー
- 回答日時:
>auth.cgiに記述するのはドメイン名(例えば自分の環境
であればusen.ad.jpですが、実運用を考えると*usen.
ad.jpのような指定)でも可能でしょうか?
ということは、追加すべき点は
・IPアドレスではなくホスト名での指定にする
・全体一致ではなく後方一致条件にする
の2点ですね。
まず
print "Status: 204\n\n" if(!/^$ENV{'REMOTE_ADDR'}$/);
↓
print "Status: 204\n\n" if(!/^$ENV{'REMOTE_ADDR'}$/ || !/^$ENV{'REMOTE_HOST'}$/);
で、「特定のホスト名またはIPアドレスからのアクセスのみ受け付ける」という意味になります。
さらに、
print "Status: 204\n\n" if(!/^$ENV{'REMOTE_ADDR'}$/ || !/^$ENV{'REMOTE_HOST'}$/);
↓
print "Status: 204\n\n" if(!/$ENV{'REMOTE_ADDR'}$/ || !/$ENV{'REMOTE_HOST'}$/);
で、後方一致に対応します。
この際、auth.cgiには「*」などを付けずに
.usen.ad.jp
と記述しておけば
abc1234.usen.ad.jp
などにマッチします。
この一致条件の設定については正規表現について勉強してみるといいでしょう。
http://www.tohoho-web.com/wwwperl1.htm#Expr
* * *
ちなみに、$ENV{'REMOTE_HOST'}はサーバーの設定によっては取得できないことがあります。
その場合はgethostbyaddr関数を使ってみてください。
gethostbyaddrの使い方は下記URLに詳しいです。
参考URL:http://www.tohoho-web.com/wwwperl2.htm#gethostby …
ここまでお付き合い頂いて本当にありがとうございま
した。
暫定的に作ったものが動作をしたので、さらに詳しく
調べて自分なりのものを作ってみようと思います。
No.4
- 回答日時:
さらに補足です。
>詳しい書き方が書いてあるHPをご存知でしたらご紹介頂けると幸いです
先ほどの回答で説明したcookieを使った作例を見つけましたのでURLを貼っておきます。
作例では画像を表示する/しないの制御を行ってますが、cookieまわりの動作は参考になると思います。
また、ちょっと改造すれば入力したユーザー名を取得してそれによって動作を変えたりとかも可能でしょう。
参考URL:http://www.aimix.jp/cgi/acccookiepas.html
この回答への補足
本当にありがとうございます。
図々しいですが最後に一点だけ質問をさせて
下さい。
auth.cgiに記述するのはドメイン名(例えば自分の環境
であればusen.ad.jpですが、実運用を考えると*usen.
ad.jpのような指定)でも可能でしょうか?
であればローカル色が強いISP利用者と固定IPで接続
している利用者が多いのでなんとか実用に耐えると
思っているのですが・・・。
No.3
- 回答日時:
>正規に利用しているメンバーは限られているので指定した
>ドメイン以外は拒否(=指定ドメインのみ許可)という
ふうには出来ませんでしょうか?
出来ます。
先ほど載せたコードの
print "Status: 204\n\n" if(/^$ENV{'REMOTE_ADDR'}$/);
の部分を
print "Status: 204\n\n" if(!/^$ENV{'REMOTE_ADDR'}$/);
にするだけです。
# ただしIPアドレスが固定でない環境では接続するたびに
# 新しいIPアドレスを管理者に教えてアクセス可能にしてもらう、、
# といった運用が必要になり非効率で非現実的ですが。
>#この方法だとユーザー名パスワード認証等は出来ないのですよね?
そうですね。
その場合はログインページを別に作って、ログイン成功したらcookieにログイン成功した旨の情報を埋め込み、掲示板CGIではそのクッキーを読み出してログイン状態を見て表示してやるという方法が考え付きます。
No.2
- 回答日時:
CGIで動作しているのアクセス制限をしたいのですね?
それはCGIのプログラム中で対策できます。
Perlなら以下のようなコードを掲示板のプログラムの先頭行(#!/usr/local/bin/perl 等の「インタープリタ行」の次の行)に埋め込んでください。
open(AUTH_FILE,"./auth.cgi");
while(<AUTH_FILE>){
chomp;
print "Status: 204\n\n" if(/^$ENV{'REMOTE_ADDR'}$/);
}
close(AUTH_FILE);
そして、掲示板のプログラムと同じディレクトリにパーミッション644で「auth.cgi」というファイルを作り、アクセス制限したいIPアドレスを列挙しておきます。
その際、IPアドレスは1行に1個だけ書いて下さい。
この回答への補足
KNETのFAQ等も見ていたのですがこの方法が一番現実
的なようですね。
書き忘れで恐縮なのですが、この方法だと指定した
IP or ドメインを拒否、だと思うのですが、正規に
利用しているメンバーは限られているので指定した
ドメイン以外は拒否(=指定ドメインのみ許可)という
ふうには出来ませんでしょうか?
#この方法だとユーザー名パスワード認証等は出来ない
のですよね?詳しい書き方が書いてあるHPをご存知で
したらご紹介頂けると幸いです
No.1
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI CGIが読み書きするデータファイルのパーミッションはさくらのインターネットでは何にするべき? 1 2023/05/02 16:44
- Perl Perl の外部モジュールの利用方法 3 2022/07/10 18:34
- その他(開発・運用・管理) 【至急】.htaccessによるディレクトリ単位でのリダイレクト 2 2023/08/10 13:46
- CGI htmlからcgiを自動的に起動させたい 1 2023/02/21 19:39
- CGI (フリーの)ツリー掲示版CGI、昔は多用させてもらいましたが・・今セキュリティ上どうでしょう? 2 2023/06/25 07:18
- その他(IT・Webサービス) ホームページにカウント数を表示する 2 2022/10/28 10:37
- ホームページ作成・プログラミング CGIが実行可能なHP領域又はレンタルサーバーでおすすめの所を教えてください 現在ホームページ領域の 1 2023/01/01 11:47
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- Windows 10 バッチファイルの記述法とルールについてアドバイスをお願いいたします。 1 2022/04/13 10:50
- CGI 古ーくからフリーのtree.cgi掲示板を利用させてもらって来ましたが、最新でなにか復活できないか? 2 2023/04/07 10:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
http://cloth-gallery.net/inde...
-
Qoo10で注文をキャンセルしたら...
-
アフェリエイトって登録したサ...
-
画像録画ソフト Apower RECの解...
-
LINE でリンク先を投稿すると ...
-
インターネット用語について教...
-
NTTの「フレッツあずけーる」の...
-
サーバーの回線速度、100Mbpsっ...
-
ASPで取得した情報をscriptタグ...
-
バリュードメインを使っていま...
-
有料サイトの開設方法
-
FC2 BLOG <AUDIO TAGを入れプ...
-
ホームページ
-
サーバーログイン情報とFTP接続...
-
自分のドメインが他者のサイト...
-
インターネットの環境をポケッ...
-
Slackの料金体系に詳しい方教え...
-
任意団体名でも開設できますか
-
あいみょんというワードが検索...
-
イントラネットを構築したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
htaccessでのアクセス拒否が効...
-
cgi-binディレクトリにアクセス...
-
サーバーに置いたPDFファイルを...
-
特定のサイトにアクセスできな...
-
gooの簡単HPにアクセスできません
-
gooメール ログイン したらHT...
-
サーバーの負荷について
-
はじめましてwordpress初心者で...
-
ホームページ アクセス制限
-
.htaccess Refererによるアクセ...
-
RSSリーダーの自動巡回を拒否す...
-
特定地域からのアクセス制限に...
-
チャット設置
-
htaccessで制限出来ていない
-
ホームページのパスワード制限...
-
サブドメインを使用しxxx.sakur...
-
サーバースペースを区切ってユ...
-
ビデオチャットにいきなり乱入...
-
携帯サイトを検索に反映させな...
-
携帯用のホームページを会員制...
おすすめ情報