Kenji
kenji****@club*****
2006年 11月 25日 (土) 21:46:35 JST
Kenji です。 On Wed, 1 Nov 2006 21:24:36 +0900 "Masao Ishikawa" <kasum****@it-de*****> wrote: > 石川です。 > > うちはまったく違う方法でspamを弾いているので紹介します。 > > % diff board.cgi.org board.cgi > 238a239 > > print '<br>毛唐対策のため、名前には2バイト文字を含めてください。'; > 400a402 > > die 'Did you do your homework? ;-)' if $name !~ /[\x80-\xff]/; すばらしいですね!! ローカルな対応ですが、日本での効果は高そうです。 こんな感じで、本文に日本語必須にして運用してみます。 Index: board.cgi.in =================================================================== RCS file: /cvsroot/h14m/hns-perl/public_html/diary/board.cgi.in,v retrieving revision 1.14 diff -u -r1.14 board.cgi.in --- board.cgi.in 5 Jul 2006 02:43:49 -0000 1.14 +++ board.cgi.in 25 Nov 2006 12:40:09 -0000 @@ -399,6 +399,11 @@ die 'invalid diary' if ($diary && (!($diary =~ /^[0-9]+$/) || length($diary) > 30)); die 'invalid refid' if ($refid && (!($refid =~ /^[0-9]+$/) || length($refid) > 10)); + # Prohibit Non-Japanese Comment + if ($Board::AllowJapaneseComment) { + die 'prohibited' if $body !~ /[\x80-\xff]/; + } + my @dirty_words = ''; my $spam_list = $HNS::System::DiaryDir . '/conf/spam_list.txt'; my @spam_found = (); @@ -408,9 +413,9 @@ close(SPAM); foreach my $word (@dirty_words) { chomp($word); - push(@spam_found, grep (/$word/, $body)) ; - push(@spam_found, grep (/$word/, $subject)) ; - push(@spam_found, grep (/$word/, $site)) ; + push(@spam_found, grep (/$word/i, $body)) ; + push(@spam_found, grep (/$word/i, $subject)) ; + push(@spam_found, grep (/$word/i, $site)) ; } }; die 'prohibited' if (@spam_found); Index: config.ph.in =================================================================== RCS file: /cvsroot/h14m/hns-perl/public_html/diary/config.ph.in,v retrieving revision 1.55 diff -u -r1.55 config.ph.in --- config.ph.in 27 Oct 2003 16:40:11 -0000 1.55 +++ config.ph.in 25 Nov 2006 12:40:09 -0000 @@ -148,4 +148,6 @@ $HideReadLinkWhenNoMsg = 1; # 1 -> on (default) , 0 -> off +$AllowJapaneseComment = 0; # 1 -> needs Japanese in message body + 1; Index: lib/Board.pm =================================================================== RCS file: /cvsroot/h14m/hns-perl/public_html/diary/lib/Board.pm,v retrieving revision 1.9 diff -u -r1.9 Board.pm --- lib/Board.pm 5 Apr 2002 15:36:39 -0000 1.9 +++ lib/Board.pm 25 Nov 2006 12:40:10 -0000 @@ -25,9 +25,9 @@ use strict; use Board::System; -use vars qw($UseBoard $UnDeletableKey $ThreadsPerPage $MaxArticle $BoardData $HnsPath $RecentView $RecentTime $ReadStr $SepStr $WriteStr $LinkStr $HeadStr $Version $FieldMaxLen $URLMaxLen $BodyMaxLen $CSSFile $Title $RecentTime $BoardOnHNS $BodyLenOnHNS $HideReadLinkWhenNoMsg); +use vars qw($UseBoard $UnDeletableKey $ThreadsPerPage $MaxArticle $BoardData $HnsPath $RecentView $RecentTime $ReadStr $SepStr $WriteStr $LinkStr $HeadStr $Version $FieldMaxLen $URLMaxLen $BodyMaxLen $CSSFile $Title $RecentTime $BoardOnHNS $BodyLenOnHNS $HideReadLinkWhenNoMsg $AllowJapaneseComment); -$Version = "0.1.1"; +$Version = "0.1.2"; $UseBoard = 0; @@ -64,6 +64,8 @@ # the option hides %readstr and %sepstr. $HideReadLinkWhenNoMsg = 1; +$AllowJapaneseComment = 0; + $CSSFile = ''; $Title = 'Board';