友人の運営するサイトが特定URLからの閲覧者から嫌がらせを受けています。
その特定URLの管理者に言っても聞き入れてもらえないのは分かっていますので、アクセス制限をかけたいと考えているようです。
しかし私も友人もホストによるアクセス制限のかけかたは知っていても特定URLからのアクセス制限は分かりません。
実際、あるのかどうかも分かりませんが、あったら非常にありがたいと思っています。

もしも特定URLからの閲覧者を弾く、アクセス制限の方法およびプログラム記載がありましたら、御教授願います。

このQ&Aに関連する最新のQ&A

A 回答 (14件中1~10件)

まだ御覧になっていないようですが、一応サンプルを記載しておきます。



#!/usr/local/bin/perl

$ENEMY='http://www.○○○.ne.jp/×××.html';

if($ENV{'HTTP_REFERER'} eq $ENEMY){
ErrorFunc();
exit(1);
}

print << "ENTRY";
Content-type: text/html

#この上の行は必ず空行にします。
#この部分に現在のエントリーページのHTMLを全て貼り付けます。
ENTRY
exit(0);

sub ErrorFunc(){
print<<"MESSAGE";
Content-type: text/html

<HTML>
<HEAD>
<TITLE>エラー</TITLE>
</HEAD>
<BODY>
<H1>現在メンテナンス中です</H1>
</BODY>
</HTML>
MESSAGE
}

尚、上記の「#」から始まる行はコメントですので、実際に作成される際は削除してください。
但し先頭行は除きます。
先頭行にはこのCGIを実行する為に必要なperlの在処が示されています。
上記の在処はあくまでサンプルですので、この部分はご使用の環境に合わせて書き換える必要があります。
一番簡単なのはチャットのCGIの先頭行を見てみる手です。
既に動いているプログラムですから間違いないと思います。
また、「$ENEMY」に設定するURLも今は架空のものですので、実際に対象となっているURLを記載して下さい。
ご不明の点があれば補足して下さい。

#尚、これはあくまでも該当URLに貼られたリンクから辿ってきた場合に有効になります。
#また、エラーメッセージはとりあえず当たり障りのないものとしました。

この回答への補足

ありがとうございます。
早速プログラムを実行したところ、パーミッションエラーが起きたそうです。
パーミッションの指定は特殊なものなのでしょうか?
ちなみに1行目のperlも合ってますし、jcode.plも入れたそうです。
念のため私も実行しましたところ、サバエラが起きます。
無知なものでもうしわけありません。
パーミッションの件を御教授願います。

補足日時:2001/10/04 21:13
    • good
    • 0

>が、やっぱりサーバーエラーになります。


>友人も同様だそうです。

う~ん…、不思議ですね~。(^_^;
動いているものをコピーしただけなんですが…。(勿論相手のURL等書き換えた箇所はありますが)
とりあえずご友人のところで「perl -wc ○○○.cgi」を実行してもらって頂けませんか?
簡単にエラー箇所が判りますので。
メッセージの意味が不明なら、そのまま記載して頂ければ解読してみます。
よろしくお願いします。

>A__さん

了解です。(^_^)
また何かお気づきになりましたらご指摘お願いします。
直に見ることが出来ないので、何故動作しないのか正直想像が付かないのです。(こちらで動いているものをそのままコピーしただけに、尚…)
    • good
    • 0
この回答へのお礼

ありがとうございます!
動作しました!

原因ですが、おばかな話、私は改行をMacに、友人はDos形式にしたままUPしてました。Unixにしたらあっさり動作。
………馬鹿な間違いしててすみませんでした。

これで一部はなんとか排除できそうです。
もっとも直接飛び込んでくる分はどうしようもありませんが。
本当に御丁寧に皆さんありがとうございました。
深く感謝致します。

お礼日時:2001/10/06 04:14

naturalさん、お返事ありがとうございます。


print<<"EOF"
という書式は最後に改行が必要だということから
実験もせずに書き込みしました。

正常に動いていたんですね。
お騒がせしました。
    • good
    • 0

>A__さん



>↑の MESSAGE の次に空白行が必要だと思いました。

とりあえずそのままで動作していますが…。(^_^;
私が参照している書籍には記載がなかったのですが、環境によってはNGだとか言うと仕事上致命的なので、それに関する注意が書かれているサイトや書籍等がありましたら教えて頂ければ幸いです。
よろしくお願いします。
    • good
    • 0

あんまり自身がない発言だけど、


No5 の naturalさんのサンプルソースの
終わりの方に空白行が抜けているような気がしました。


<H1>現在メンテナンス中です</H1>
</BODY>
</HTML>
MESSAGE
}

↑の MESSAGE の次に空白行が必要だと思いました。

この回答への補足

ありがとうございます。
一応、こちらは空白行を入れてました。
が、やっぱりサーバーエラーになります。
友人も同様だそうです。

補足日時:2001/10/05 23:40
    • good
    • 0

>普通.cgiは「読む」と「検索実行」を全て、「書き込み」をオーナーのみをチェックだと思ったのですが。



度々言葉足らずですみません。(^_^;
既存のパーミッション状態に「検索/実行」権を追加してくださいと言う意味だったのです。(恐らく初期状態で644になっていると思ったもので…)
つまり755の状態であればOKです。
もう一度御確認の上、実行してみて下さい。
また不明点があれば補足して下さい。

この回答への補足

>既存のパーミッション状態に「検索/実行」権を追加してくださいと言う意味だったのです。(恐らく初期状態で644になっていると思ったもので…)
了解しました。
とりあえず、友人にチャレンジするように言ってあります。
また助力をあおぐかもしれませんがよろしくお願いします。

補足日時:2001/10/05 21:06
    • good
    • 0

再度投稿します。


下で紹介したリンクブロッカーの43行目くらいに

# 特定のページ以外からのリンクアクセスは拒否したいが、URL直接入力やブックマー
# ク等のダイレクトアクセスは許可したい場合は、次の行の頭にあるシャープ"#"を外し
# て下さい。

との記述があります。これを使ってうまく設定できないものでしょうか?ふと思ったのですが、悪意をもった閲覧者がURL直接入力した場合は、いずれにせよ制限できないと思うのですが、どうなのでしょう?特定URLにチャットの入り口がリンクされてしまっているということですよね??その他勘違いしていましたら、読み流してください。

この回答への補足

すみません。見落としておりました。
<# 特定のページ以外からのリンクアクセスは拒否したいが、URL直接入力やブックマーク等のダイレクトアクセスは許可したい場合は、次の行の頭にあるシャープを外して下さい。

ちなみに設置してみましたが、度重なる嫌がらせの関係で友人は該当URLをあっちこっち移動させているみたいです。
で、ブックマークの人とウェブリングから回ってくる人に分かれているようです。
つまり『特定URL』”のみ”弾きたい部分でこなせないと言っておりました。

補足日時:2001/10/05 20:42
    • good
    • 0

割り込み失礼します。



フリーのCGIで下記のようなものをみつけたので、参考にしてください。使ったことはないので、どこまで防げるかは不明です。

TOPページ>その他の中のアクセス制限>リンクブロッカー
http://www-power.net/

この回答への補足

ありがとうございます。
初めて配付でリンクブロッカーを見ました。
ですが、常連さんのほとんどが問題ページにブックマーク(直リンク)をしているらしいのです。
今、ダウンロードしてみましたところ、直リンクはすべて弾かれるとなっております。(苦笑)
となると、このCGIはちょっと今回の件では難があるようです。

補足日時:2001/10/05 11:37
    • good
    • 0

>ところで、#HTMLを書く所 の部分ですが、#から続けてHTMLを<html>から</html>まで書いていいのですよ



すみません、言葉足らずでしたね。
「#」も削ってください。
恐らくサーバーエラーは消えるはずです。

Fetchでのパーミッション設定ですが、まずはサーバー側のファイル一覧が表示された状態で対象のファイルを選択します。
次に、[リモート]メニュー→[Permissionの設定...]を選択します。
設定ダイアログが表示されたら、各ユーザー(オーナー、グループ、全員)の「検索/実行」欄にチェックを入れます。

この状態で再度お試し下さい。

この回答への補足


普通.cgiは「読む」と「検索実行」を全て、「書き込み」をオーナーのみをチェックだと思ったのですが。

一応、アドバイス通りの設定をしてみました。(ちなみに今までは上記方法で行っていました)
が、やはりエラーになります。

>すみません、言葉足らずでしたね。
>「#」も削ってください。
言葉足らずだなんてとんでもない!
お手数かけます。
2つとも#は取って大丈夫ですよね?

本当にお手をわずらわせてしまってすみません。申し訳ないかぎりです。

補足日時:2001/10/05 11:28
    • good
    • 0

>パーミッションの指定は特殊なものなのでしょうか?



いいえ、何ら特殊なものではありません。
ただ、転送しただけでは実行権が付きませんので、転送後telnet等でログインし、

chmod +x ○○○.cgi

のような感じで実行権を付加します。
またはチャットのCGIを組み込まれたときにも同様のことをなさっているはずですから、上記の通りでなくてもそのときと同じやり方で構いません。
もし実行権を付加しているのにエラーになると言うことでしたら補足して下さい。

それと、telnetで入れるのならば、スクリプトの置いてあるディレクトリに移動し、コマンドラインから「perl -wc ○○○.cgi」を実行してみて下さい。
スクリプトに記述ミスがあればその行数とエラーが表示されます。
掲載したスクリプトは実行確認済みですが、一応念のためということで…。

この回答への補足

友人はtelnetで設置しているようですが、私はFTPソフトでパーミッションの設定を行いながら実行権を不可しております。
(私もチャット設置してますが、サーバーがtelnet禁止のところなので、MacのFetchを使っております)
友人と今、連絡が取れないため、友人の方で出るエラーがどんなものか分かりませんが、私の場合は純粋(?)にサーバーエラーです。
どこかの記載が間違ってるかもしれません。

ところで、#HTMLを書く所 の部分ですが、#から続けてHTMLを<html>から</html>まで書いていいのですよね?
一応、改行もしてみたのですが…。

………サバエラになる原因といえばそれくらいしか見当たらないので………。
私が設置できれば、パーミッションがどうのと言っている友人には伝言はできますので。

本当にお手数ですがよろしくお願い致します。

補足日時:2001/10/05 00:52
    • good
    • 0
この回答へのお礼

すみません。補足で実行権を不可と書いておりますが、「付加」しています、の間違いです。
まるきり正反対ですね。まぎらわしくてごめんなさい。

お礼日時:2001/10/05 01:00

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

QHPにアクセス制限をかけるために

HPにアクセス制限をかけるには、CGIなどを利用するとあるのですが、

業務において利用するため、レンタルなどは利用できません。
私の会社にはそういった管理者がいません。
外注するのも、会社より駄目だって言われてしまったのですが、

プログラミングまったく未経験の私には、どこから手をつけていいのかも分かりません。
今までは、HTMLとCSSを利用したHP作成だけをイメージしていたので、この2つについては、独学で勉強しました。
初めてCGIなどの勉強に適した、そして短期間で勉強できる本や、分かりやすいサイトなどありませんでしょうか?
また、CGIなどを使わずにHPや掲示板にアクセス制限を書ける方法はありませんでしょうか?
どうか お願いいたします。

Aベストアンサー

ホームページで利用しているHTTPサーバがNCSA系(有名なApacheなど)ならば、「.htaccess」による基本認証が使えます。
※ たまーに、NCSA系でも.htaccessを使わせてくれないところもあります。

アクセス制限でしたらCGIなどでするより、基本認証を使ったほうがずっと便利です。

.htaccessの利用方法はCGIを勉強するよりずっと簡単ですので、ぜひチャレンジしてみてはいかがでしょう?

.htaccess実践活用術
  http://www.shtml.jp/htaccess/

ミケネコの htaccess リファレンス
  http://mikeneko.creator.club.ne.jp/~lab/web/htaccess/

Qアクセス制限ディレクトリをiモード端末でアクセスすると?

webサーバ上に.htaccessでアクセス制限をかけた、
"A"というフォルダがあり、その下位に"A1","A2","A3"
という3つのフォルダにBBSのCGIを入れました。
"A"に置いた index.html から各CGIを選ぶ運用です。

PCやau端末では、"A"の中のHTMLを表示する前に、
ベーシック認証がかかり、"A"とサブフォルダの間を
行ったり来たりは自由にできます(当然ですね)。

ところが、iモード端末ですと行き来の度に認証がかかり、
CGIを調べても、相対パスの指定しか書いていません。

iモード端末でもPCやau端末と同じ操作にしたいので、
チェックポイントやヒントでも結構なので教えて下さい。

Aベストアンサー

iモードでは、端末によってBASIC認証の動作が違うようです。

参考URL:http://www.nttdocomo.co.jp/p_s/imode/tag/s5.html#5_4

QCGIへのアクセスが集中した場合にアクセスを一時的に制限したり、エラーメッセージを表示したり、予備のCGIに飛ばす方法。

CGIへのアクセスが集中した場合に、メッセージを表示し、アクセスを制限するサイトなどを目にしますが、どのようにして実現しているのでしょうか。例えば、flockなどの排他処理によって、一定時間内は1ユーザーからのアクセスしか受け付けないといった処理は可能かと思いますが、3ユーザーまでのアクセスのみ受け付けるといった方法はあるのでしょうか。

また、サーバダウンなどにより、CGIが動作しない場合に、エラーメッセージを表示したり、予備のCGIに飛ばす方法はありますでしょうか。
例えば、Aサーバのmain.cgiを動作させたい場合に、まずBサーバのpre.cgiにとばし、Bサーバのpre.cgiからAサーバのmain.cgiへのアクセスを試み、Aサーバがダウンしている為にアクセスに失敗した場合に、Bサーバ内のerroor.htmやsub.cgiに飛ばすことなどはできるのでしょうか。

できれば、CGI(perl)で実現したいのですが、有効な方法がございましたら、恐れ入りますが、教えていただけないでしょうか。もしも可能でしたら、簡単なサンプルのスクリプト等を添えていただけると大変助かります。何卒よろしくお願いいたします。

CGIへのアクセスが集中した場合に、メッセージを表示し、アクセスを制限するサイトなどを目にしますが、どのようにして実現しているのでしょうか。例えば、flockなどの排他処理によって、一定時間内は1ユーザーからのアクセスしか受け付けないといった処理は可能かと思いますが、3ユーザーまでのアクセスのみ受け付けるといった方法はあるのでしょうか。

また、サーバダウンなどにより、CGIが動作しない場合に、エラーメッセージを表示したり、予備のCGIに飛ばす方法はありますでしょうか。
例えば、Aサー...続きを読む

Aベストアンサー

>、FastCGIやmod_perlというのはどのようなものでしょうか。

Googleあたりで調べれば、かなりヒットするので、まずは調べてみて下さい。。。
↓本家
http://www.fastcgi.com/
http://perl.apache.org/

WWWサーバに組み込む形になるので、独自サーバじゃないと使えませんけど。
レンタルサーバの中には、使えるところもあるらしいですよ。

>大変申し訳ございませんが、参考URLやサンプルなどご存知ないでしょうか

ないと思います。(^^;
というか、Aサーバ上に常駐(Unixならcronか)させたプログラムに、定期的にBサーバに通知させようと考えたわけですが、サンプルのようなものはどこかにあるのかもしれませんけど、見つけるのは大変でしょう。

いずれにしても、BサーバのCGIでAサーバの状態を取得し、その後AサーバのCGIを呼び出すのだとすると、今度はBサーバの負荷が高くなります。
負荷を軽減したり、サーバダウンした場合の対処方法として色々講じようとするのも良いのですが、あまり色々考えすぎると、返って別の部分で負荷が高くなったり、広げすぎて収拾がつかなくなったりするものです。
個々のCGIの処理を軽くするようにするなど、CGI側の工夫で回避できる部分は多いので、そちらがまず先かと思います。(余分な処理をさせない、より速いアルゴリズムを選ぶ、2度の処理に分けられるなら2つのCGIに分け2ステップで処理するetc)

>、FastCGIやmod_perlというのはどのようなものでしょうか。

Googleあたりで調べれば、かなりヒットするので、まずは調べてみて下さい。。。
↓本家
http://www.fastcgi.com/
http://perl.apache.org/

WWWサーバに組み込む形になるので、独自サーバじゃないと使えませんけど。
レンタルサーバの中には、使えるところもあるらしいですよ。

>大変申し訳ございませんが、参考URLやサンプルなどご存知ないでしょうか

ないと思います。(^^;
というか、Aサーバ上に常駐(Unixならcronか)させたプログラ...続きを読む

Q閲覧自由で書込みのみパスワード制限の掲示板

ある個人サイトさんで配布されていた
KENT WEBさんの「YY-BOARD」を改造されたものを利用しています。
その際、そのサイトさんの規定の範囲内で
自分のサイトに合うように、デザイン等を若干いじりました。
何の問題もなく何年間も利用してきたのですが
最近、出会い系やアダルトサイトの宣伝の書込みに困っています。
当初はホストやIPでアクセス制限していたのですが
書込みのある度にホストが違っていたり、大手プロバイダ経由だったりするので
制限してしまうと、一般の閲覧者さんまで弾いてしまいそうで
これだけでは防ぎきれないのが現状です。

そこで調べていたら、あるサイトさんで「YY-BOARD」を元にした
『閲覧は自由で書込み時のみにパスワード制限がかかる』という
スクリプトを配布していたのを見つけました。
ログの移行もOKだし、これを利用させてもらおうかとも思ったのですが
そうすると、今度はデザイン面がかなり変わってしまいます。
今使っているものが、とぼしい知識で必死にいじったものなので
かなり愛着もあり、また、一応試してみましたが
上記のスクリプトのデザインを現在のカタチに近付けるように
改造することも私にはできませんでした。

そこで、勝手な質問かとも思うのですが、今使っているBBSに
『閲覧は自由で書込み時のみにパスワード制限がかかる』という機能だけを
プラス出来ないものかと…。
こういうタグ(?)をご存知の方、
もしくは、そのようなものを紹介しているサイトさん等があれば
教えて頂けませんでしょうか?

ある個人サイトさんで配布されていた
KENT WEBさんの「YY-BOARD」を改造されたものを利用しています。
その際、そのサイトさんの規定の範囲内で
自分のサイトに合うように、デザイン等を若干いじりました。
何の問題もなく何年間も利用してきたのですが
最近、出会い系やアダルトサイトの宣伝の書込みに困っています。
当初はホストやIPでアクセス制限していたのですが
書込みのある度にホストが違っていたり、大手プロバイダ経由だったりするので
制限してしまうと、一般の閲覧者さんまで弾いてしまい...続きを読む

Aベストアンサー

 残念ながら(今使っている奴にパスワード機能追加は)ちょっと難しいだろうなぁ。いや、スキルがあるなら良いけど、ちょちょっとできるような話じゃないからね。まぁどこまでやるかにもよるけど。

 せっかくロジック(あるサイトさん配布のもの)があるんだから、えっちらおっちら少しずつでもデザインを似せて、とりあえず満足行く仕上がりになってから移行するしかないんじゃないかなぁ。
 ロジック変更をプロに頼んでも良いけど、お金がわんさかかかるだろうね。

QWEBサイトの閲覧に制限としてパスワードをかけたいのですが・・・

どのようなCGIを組み込んだら良いのでしょうか?
フリーソフトなどでおススメなものがありましたら
ご紹介いただけないでしょうか?

Aベストアンサー

CGIで観覧制限をかけるなら下記のようなスクリプトはいかがでしょうか
(簡単なスクリプトなので一つのHTMLしか保護してませんが)



#!/usr/local/bin/perl

################# 設定 #################

$script = 'test.cgi'; #このスクリプトの名前
$password = '1234'; #パスワード

################# スクリプト #################
use CGI;
$query = new CGI;
$pass = $query->param("pass");
if($pass eq $password){&html};
&pass;
#################パスワード入力ページ#################
sub pass{
print <<"HTML";
Content-type: text/html

<html>
<head>
<title>パスワード入力</title>
</head>
<body>
<form method="post" action="$script">
パスワード:<input type="password" name="pass">
<input type="submit" value="送信">
</form>
</body>
</html>

HTML
exit;
}
#################パスワードで保護されたページ#################
sub html{
print <<"HTML";
Content-type: text/html

<html>
<head>
<title>タイトル</title>
</head>
<body>
ここにパスワードで保護するページを書く
</body>
</html>

HTML
exit;
}

CGIで観覧制限をかけるなら下記のようなスクリプトはいかがでしょうか
(簡単なスクリプトなので一つのHTMLしか保護してませんが)



#!/usr/local/bin/perl

################# 設定 #################

$script = 'test.cgi'; #このスクリプトの名前
$password = '1234'; #パスワード

################# スクリプト #################
use CGI;
$query = new CGI;
$pass = $query->param("pass");
if($pass eq $password){&html};
&pass;
#################パスワード入力...続きを読む


このカテゴリの人気Q&Aランキング

おすすめ情報