- ベストアンサー
連続アクセスを規制する方法
- 掲示板のページで何度も連続アクセスする人を規制する方法を知りたいです。
- 10秒中に5回以上連続アクセスをしたら30秒間『連続アクセスはおやめ下さい』と表示する機能を掲示板のCGIに組み込みたいです。
- ニコニコ動画での連続アクセス規制のような機能を掲示板に導入したいです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
色々な方法があると思いますが、cookieを使う方法です。 cookieが無効の場合には機能しませんが・・・ #!/usr/bin/perl use strict; use CGI::Carp qw(fatalsToBrowser); use CGI; my $cgi = new CGI; #cookie(access_log)の取得 my @access_log=split(/,/,$cgi->cookie(-name=>'access_log')); #現在日時取得 #time関数は、GMT(世界標準時)の1970年1月1日0時0秒からの秒数を返します my $now=time; my $ret; #5回前のアクセスと比較 if($access_log[4] eq ''){ $ret=0; #まだ5回アクセスしてない }else{ $ret=$now-$access_log[4]; } #cookie(access_log)の保存 splice @access_log,0,0,$now; #先頭に今回の時間を入れる splice @access_log,5; #6番目からの要素を削除 my $cookie=$cgi->cookie(-name=>'access_log',-value=>join(',',@access_log)); print $cgi->header(-charset=>'Shift_JIS',-cookie=>$cookie); #headerは1回しかできないので、文字出力の前に保存する #チェック print "$ret<br>\n"; if(($ret>0)&&($ret<10)){ print"もう少し時間をあけてアクセスしてください<br>\n"; exit; } #ok print"いらっしゃい<br>\n"; exit;
お礼
おお! すばらしい!!! 私の思い通りの動作をしてくれます!! やはり、Cookieが無効だと機能しませんでしたね。 ちょっとおしいです。とりあえず、Cookieが無効だとエラーを出すことを考えてみます。 どうもありがとうございました!!!感謝です。
補足
補足という形で申し訳ありませんが、無事にCookieが無効だとエラーを出すようにでき、解決しました!! 方法を伝授していただき、改めて本当にありがとうございました! 本当に感謝です!!!!!