http://www.hatena.ne.jp/1055237535
掲示板のCGIにアクセス制限を付け加えたいのですがどういう文章を付け加えたらいいでしょうか?もしホスト名で制限できるのであればそちらでお願いします。.. - 人力検索はてな
URLはダミーです。
ご質問の掲示板はレンタルCGIでしょうか?
それともオリジナルの自作CGIでしょうか?
レンタルなら、その借りもとのFAQを見れば
だいたいアクセス拒否についても載っていると思います。
自作であれば、perlで書いたのかとか、もう少し情報があるとありがたいです。
文章を付け加えるというのがよくわからないのですが。
見てみてください。
あと.htacessというのでも制限できます。サーバによっては設置出来ない場合もあります。
ありがとうございます。後者にありました。
探していたのは$hostと環境変数REMOTE_HOSTまたはREMOTE_ADDRが一致すればアクセス拒否するという感じです。
しかし・・・以下の様な文をCGI中の最初の方に(require ’./jcode.pl’;の直下)に加えたのですが500InternalServerErrorになりました。
どうしてでしょう?
#禁止したいホスト名またはIPアドレス
my $deny_hosts = ’192.168.1. .crack.ne.jp’;
#チェックルーチン
foreach my $host (split(/[¥s]+/,$deny_hosts)){
if($ENV{REMOTE_HOST} =~ /¥Q$host¥E/ || $ENV{REMOTE_ADDR} =~ /¥Q$host¥E/){
die ”アクセス禁止です。¥n”;
}
}
こういうところから、アクセス制限(こちらでいうと「最後の良心」あたり)のCGIをダウンロードしてきて、アクセス制限だけで1つのCGIを鯖に上げて、そのアクセス制限CGIを呼び出すタグ(こちらの場合は、javaのスクリプト作成コーナーがある)を、掲示板表示用のHTMLに貼ればいいと思います。
うちはそうしてます。
そのアクセス制限CGIを呼び出すタグがわかりません。
Javascriptでの書き方を教えてください。
先ほどの答えの補足というか修正です。
java書く必要なかったです(汗)
こちらの「導入」のところを読んでいただくとおわかりになるかと思います。
さっそくやってみました。
自分を対象にテストしたのですが何故か拒否されませんでした。何故でしょう?
また元のCGIに書き足すような感じにするにはどうすればいいのでしょうか?
Perlの構文チェックができます。よく使ってます。
Content-type: text/html¥n¥n;
がないとエラーがでそうですね。私はよく書き忘れますが。。ついでに、文字コードも指定して。
初心者なのでこれくらいしかアドバイスできません〜
(++)がんばってください〜
ありがとうございます。
参考にします。
わたしはTheRoomのAccess Denialを使っています。
アクセス制御をしたいCGIに一行足すだけで、簡単に制御が出来ます。
その代わり参加者全員のパスを入力してやらなきゃならないですよね・・・
それよかさっきの自分を対象にしたアクセス制限のテスト成功しました。最後の良心のやつです。ありがとうございます。
あとは2番目の記事に返信つけた問題がまだ残っています(CGIに直接文を付け加えるやつ)
Content-type: text/html¥n¥n;
を加えてみたのですがやはりインターナルサーバーエラーでした。
何が悪いのか原因がわかりません。
とりあえずIPでのやり方なら知っているのですがホストの方が何かと便利なので・・・。
ちなみにこれがIPでの制限方です。
#-----同じようにいくつも追加できます。
#$host[0] = ”219.165.163”;
#$host[1] = ”219.164.34”;
#$host[2] = ”61.211.130”;
#$host[3] = ”218.223.153”;
#$host[4] = ”218.47.190”;
#$host[5] = ”211.10.254”;
#$host[6] = ”219.114.25”;
#$host[7] = ”61.214.42”;
#$host[8] = ”61.207.64”;
#$host[9] = ”219.160.95”;
#$host[10] = ”210.255.60”;
#$host[11] = ”***.***.***”;
#local($match) = 0;
#foreach (@host) {
#if ($ENV{’REMOTE_ADDR’} =~ /$_/) { $match=1; last; }
#}
#if ($match) {
#print ”Content-type: text/html¥n¥n”;
#print ”<html><body>アクセスできません</body></html>”;
#exit;
#}
#
#-----ここまで
どなたかこれをホストで行う方法わかりませんか?
Yahoo! JAPAN
URLはダミーです。すみません。
Perlは書き方を少しかじっただけなので、そのコードが正しいかどうかはわかりませんが、
’192.168.1. .crack.ne.jp’
[¥s]
/¥Q$host¥E/ || $ENV{REMOTE_ADDR} =~ /¥Q$host¥E/
”アクセス禁止です。¥n”
text/html¥n¥n
これらの部分のシングルクォーテーション、ダブルクォーテーション、¥記号が全角になっています。このまま書いてあるとすれば構文エラーで500が出ると思います。
両方ともやってみましたが500のサーバーエラーでした。(当然半角でやってみましたが)>5,7の回答者の方
僕の2と6の返信コメントのコード内で修正箇所あるいはホストへの変更法かる方教えてください
配布していたものをダウンロードしてきたものです。
そういうものが載ってないサイトなのです。