TOWN
セキュリティ対策
「掲示板」の不正防止
「掲示板」の不正防止方法を紹介します。
改造場所
■「orijinal_house.cgi」
改造内容
■「orijinal_house.cgi」をエディタで開き、下記部分を探して下さい。 (※表示の都合上改行が加えてあります。)
#BBS投稿処理 sub bbs_regist { &lock; #ログファイル更新 # ログを読み込み if ($in{'ori_ie_id'} eq "admin"){ $bbs1_log_file = "./member/admin/bbs".$in{'bbs_num'}."_log.cgi"; }else{ $bbs1_log_file = "./member/$in{'ori_ie_id'}/bbs1_log.cgi"; } open(IN,"$bbs1_log_file") || &error("Open Error : $bbs1_log_file"); # 先頭行を取得 $total_counter = <IN>; ($total_counter,$all_total_counter)= split(/<>/, $total_counter); #ver.1.40 $top = <IN>; local($b_num,$b_name,$b_date,$b_res,$b_count,$b_com)= split(/<>/, $top); #ver.1.40 close(IN); $in{'b_com'} =~ s/<>/<>/g; #タグ禁止処理 # $in{'b_com'} =~ s/</</g; # $in{'b_com'} =~ s/>/>/g; # コメントの改行処理 $in{'b_com'} =~ s/\r\n/<br>/g; $in{'b_com'} =~ s/\r/<br>/g; $in{'b_com'} =~ s/\n/<br>/g; $in{'b_com'} =~ s/([^=^\"]|^)(https?\:[\w\.\~\-\/\?\&\+\=\:\@\%\;\#\%]+)/$1<a href=\"$2\" target=\"_blank\">$2<\/a>/g; #ver.1.30ここから $name_seikei = $in{'name'} . "<span style=\"font-size:9px\">($in{'job'})</span>"; if ($name_seikei eq "$b_name" && $in{'b_com'} eq "$b_com") { &error("二重投稿です"); } #ver.1.30ここまで if ($in{'b_com'} eq "") { &error("コメントが入力されていません"); } open(IN,"$bbs1_log_file") || &error("Open Error : $bbs1_log_file"); @all_data = <IN>; shift @all_data; $total_kizisuu = @all_data; close(IN); &time_get; $all_total_counter ++; #トータル記事数をカウントver.1.40 #新規投稿なら新記事Noを取得 if ($in{'b_res'} eq ""){ $total_counter++; #更新配列を定義 $new_toukou = "$total_counter<>$in{'name'}<span style=\"font-size:9px\">($in{'job'})</span><>$date2<>$in{'b_res'}<>$all_total_counter<>$in{'b_com'}<>\n"; #ver.1.40 unshift (@all_data,$new_toukou); $total_counter = "$total_counter<>$all_total_counter<>\n"; #ver.1.40 unshift (@all_data,$total_counter); #レスの場合 }else{ #更新配列を定義 $new_toukou = "<>$in{'name'}<span style=\"font-size:9px\">($in{'job'})</span><>$date2<>$in{'b_res'}<>$all_total_counter<>$in{'b_com'}<>\n"; #ver.1.40 foreach (@all_data){ ($b_num,$b_name,$b_date,$b_res,$b_mail,$b_com)= split(/<>/, $_); if ($b_num eq "$in{'b_res'}" || $b_res eq "$in{'b_res'}"){ push (@top_idou ,$_); next;} push (@new_all_data,$_); } push (@top_idou ,$new_toukou); unshift (@new_all_data,@top_idou); $total_counter = "$total_counter<>$all_total_counter<>\n"; #ver.1.40 unshift (@new_all_data,$total_counter); @all_data = (); @all_data = @new_all_data; } #レスの場合閉じ
■下記赤文字部分を追加して下さい。
#BBS投稿処理 sub bbs_regist { &lock; #ログファイル更新 # ログを読み込み if ($in{'ori_ie_id'} eq "admin"){ $bbs1_log_file = "./member/admin/bbs".$in{'bbs_num'}."_log.cgi"; }else{ $bbs1_log_file = "./member/$in{'ori_ie_id'}/bbs1_log.cgi"; } open(IN,"$bbs1_log_file") || &error("Open Error : $bbs1_log_file"); # 先頭行を取得 $total_counter = <IN>; ($total_counter,$all_total_counter,$zenkai_name,$zenkai_id)= split(/<>/, $total_counter); #ver.1.40 $top = <IN>; local($b_num,$b_name,$b_date,$b_res,$b_count,$b_com)= split(/<>/, $top); #ver.1.40 close(IN); $in{'b_com'} =~ s/<>/<>/g; #タグ禁止処理 # $in{'b_com'} =~ s/</</g; # $in{'b_com'} =~ s/>/>/g; # コメントの改行処理 $in{'b_com'} =~ s/\r\n/<br>/g; $in{'b_com'} =~ s/\r/<br>/g; $in{'b_com'} =~ s/\n/<br>/g; $in{'b_com'} =~ s/([^=^\"]|^)(https?\:[\w\.\~\-\/\?\&\+\=\:\@\%\;\#\%]+)/$1<a href=\"$2\" target=\"_blank\">$2<\/a>/g; #ver.1.30ここから $name_seikei = $in{'name'} . "<span style=\"font-size:9px\">($in{'job'})</span>"; if ($name_seikei eq "$b_name" && $in{'b_com'} eq "$b_com") { &error("二重投稿です"); } #ver.1.30ここまで if ($in{'b_com'} eq "") { &error("コメントが入力されていません"); } # 不正対策 ここから # 連続投稿の禁止 ここから $renzoku_toukou_check = 0; if($in{'name'} eq $zenkai_name){ if($in{'name'} ne $admin_name){ if($in{'ori_ie_id'} eq "admin"){ &error("連続投稿は出来ません。"); }else{ &openAitelog($in{'ori_ie_id'}); if($in{'name'} ne $aite_name){ $renzoku_toukou_check = 1; } } } } if($renzoku_toukou_check eq 1){ &error("連続投稿は禁止します"); } # 連続投稿の禁止 ここまで # JavaScriptなどの禁止 ここから $in{'b_com'} =~ s/javascript/ジャバスクリプト/i; $in{'b_com'} =~ s/xmp/XMP/i; $in{'b_com'} =~ s/telnet/telnet/i; $in{'b_com'} =~ s/iframe/iframe/i; # JavaScriptなどの禁止 ここまで # 不正対策 ここまで open(IN,"$bbs1_log_file") || &error("Open Error : $bbs1_log_file"); @all_data = <IN>; shift @all_data; $total_kizisuu = @all_data; close(IN); &time_get; $all_total_counter ++; #トータル記事数をカウントver.1.40 #新規投稿なら新記事Noを取得 if ($in{'b_res'} eq ""){ $total_counter++; #更新配列を定義 $new_toukou = "$total_counter<>$in{'name'}<span style=\"font-size:9px\">($in{'job'})</span><>$date2<>$in{'b_res'}<>$all_total_counter<>$in{'b_com'}<>\n"; #ver.1.40 unshift (@all_data,$new_toukou); $total_counter = "$total_counter<>$all_total_counter<>$in{'name'}<>$in{'k_id'}<>\n"; #ver.1.40 unshift (@all_data,$total_counter); #レスの場合 }else{ #更新配列を定義 $new_toukou = "<>$in{'name'}<span style=\"font-size:9px\">($in{'job'})</span><>$date2<>$in{'b_res'}<>$all_total_counter<>$in{'b_com'}<>\n"; #ver.1.40 foreach (@all_data){ ($b_num,$b_name,$b_date,$b_res,$b_mail,$b_com)= split(/<>/, $_); if ($b_num eq "$in{'b_res'}" || $b_res eq "$in{'b_res'}"){push (@top_idou ,$_); next;} push (@new_all_data,$_); } push (@top_idou ,$new_toukou); unshift (@new_all_data,@top_idou); $total_counter = "$total_counter<>$all_total_counter<>$in{'name'}<>$in{'k_id'}<>\n"; #ver.1.40 unshift (@new_all_data,$total_counter); @all_data = (); @all_data = @new_all_data; } #レスの場合閉じ
掲示板への連続投稿を禁止します。
特定文字の入力を禁止します。(半角文字を全角に変換)
前後の内容
俺ペナ← | TOWN | ||||
設置方法← | セキュリティ対策 | ||||
「銀行ローン」の不正防止← | 「掲示板」の不正防止 | →「競馬」の不正防止 |
野良猫タウン
当サイトでは、「野良猫タウン」として「TOWN」を設置・公開しています。
オリジナル改造を施した「のんびりまったりタウン」です。
100名限定で楽しんで頂ければ、嬉しいです♪
【劇ぱわ改造設置支援サイト】Take it easy ! RYOQUEST presents
『野良猫のCGI講座』は、
【劇ぱわ改造設置支援サイト】Take it easy ! RYOQUEST presents のコンテンツとして、虎猫が公開しています。
「劇空間ぱわふるリーグ2 ver 3.00b(劇ぱわ)」は、
『きままなまま』で管理人にーやん様が作成・無料配布されているCGI/Perlによる野球ゲームです。
「TOWN」は、
『Brassiere』で配布されているCGI/Perlによるゲームです。
サイト自体は現在休止中ですが、製作されたゲームなどの配布は継続されています。
参考にされた方は、当サイトへリンクを貼って下さい♪
サイト名:Take it easy ! RYOQUEST presents
(サイト名:Take it easy !)
URL:http://ryoquest.sakura.ne.jp/
バナーURL:http://ryoquest.sakura.ne.jp/image/tie_8831an.gif
![]()
『旧:野良猫のCGI講座』
以前の『野良猫のCGI講座』をご覧になりたい方は、『旧:野良猫のCGI講座』からアクセスして下さい。
但し、更新は一切していません。
(※「旧:野良猫のCGI講座」には「TOWN」に関する記述はありません。)