トップページ > 記事閲覧
Tackysroomさんの「もっと書き込み隊」へのフィルタ設置
日時: 2006/04/11 21:32
名前: まーみん
はじめまして!
連日のスパムの書き込みの前に
途方に暮れていたところ、こちら様のことを知りました!!
本当に心から救われたような思いがいたします。

早速使わせて頂きたいのですが
「もっと書き込み隊Ver0.961」
への装着はどうすれば良いのでしょうか?
お忙しいところ恐れ入りますが、
お手すきの時にご教授なさって頂けないでしょうか?
いきなりぶしつけな質問をいたしまして申し訳ございません。
どうかよろしくお願いいたします!!


Tackysroomさんはこちらです http://tackysroom.com/
メンテ

Page: 1 |

Re: Tackysroomさんの「もっと書き込み隊」へのフィルタ設置 ( No.1 )
日時: 2006/04/21 17:33
名前: たけっひろ!
大変遅くなって

とりあえず...1915行目から最後までを下記のコードで置き換えれが....それなりには動くと思います。
(IPスパムフィルターは入れてませんが..これでもそれなりに大丈夫です


ちなみに動作見本は下記になる
http://www.j-pca.com/bbs_test/motto/mkakikomitai.cgi


###<-------------------------------------------------------------
###<---   共通チェック
###<--------------------------------------------------------------
sub comchk {

    #掲示板荒らし対策

    if ($use_hoihoi eq ""){$use_hoihoi=1;}
    # スパムホイホイ(勝手に命名)追加コード
    if ($use_hoihoi == 1){
        # まず保存する基本の文面を考えます
        # 日時を取得
        local ($sec9, $min9, $hour9, $mday9, $mon9, $year9,
            $wday9, $yday9, $isdst9) = localtime(time);
        $mon9++;
        $year9=$year9+1900;
        $log9 =sprintf("%04d/%02d/%02d %02d:%02d:%02d", 
            $year9,$mon9,$mday9,$hour9,$min9,$sec9)."\n";
        # 上記にいろいろログに必要なデータを付け加える
        $log9 .= "$FORM{'name'}\n";
        $log9 .= "$FORM{'email'}\n";
        $log9 .= "$FORM{'title'}\n";
        $log9 .= "-----------\n";
        $log9 .= "$FORM{'hp'}\n";
        $log9 .= "$ENV{'REMOTE_ADDR'}\n";
        $log9 .= "-----------------\n";
    }

    foreach $buf(@DANGER_LIST){
        if ( $buf ) {
            $buf=~ s/\./\\./g;        $buf=~ s/\?/\./g;        $buf=~ s/\*/\.\*/g;
            if($host =~ /$buf/gi){    &error("\申\し\訳ありません。<br>あなたのプロバイダーからは投稿できませんでした. ");    }
        }
    }
    if ( $FORM{'action'} eq 'regist' || ( $FORM{'action'} eq 'update' && $FORM{'proc'} eq 'edit') )    {
        if ( $FORM{'name'} eq '')    {    &error("お名前を入力して下さい。");    }
        if ( $titleflg == 1 && $FORM{'title'} eq '' && $FORM{'kflg'} eq '' && $FORM{'resno'} eq '' )    {    &error("タイトルを入力して下さい。");    }

        if ( $FORM{'kflg'} eq '' ) {
            if ( $FORM{'comment'} eq '')    {    &error("メッセージは省略出来ません。");    }
            if ( $maxword ne '' && (length($FORM{'comment'}) > $maxword))    {    &error("メッセージは$maxword文字までしか登録出来ません。");    }
        }    else    {
            if ( $ikkiflg2 == 1 )    {
                if ( $FORM{'pass'} ne $password )    {    &error("申\し訳ありませんが、管理者以外は一括レスは出来ません。");    }
            }
        }

        ## ひらがなでチェックする --------------------------------------
        $bbdy = $FORM{'comment'};
        &jcode'convert(*bbdy, 'euc');
        if ($bbdy !~ m/(\xA4[\xA1-\xF3]){2}/){

            if ($use_hoihoi == 1){
                &write_hoihoi('ひらがなチェックで捕獲!');
            }

            &error('コメントを正しくお書きくださいね!');
        }

        ## 文面の中にあるリンクの数一定以上なら終了 -------------------
        if ($FORM{'comment'} ne ''){
            my $urlctn = ($FORM{'comment'} =~ s/http/http/g);
            if (!$urlctn) { $urlctn = ($FORM{'comment'} =~ s/www\./www\./ig); }
            if ($urlctn > 10){

                # スパムホイホイ書き込み部分 -------------------------
                if ($use_hoihoi == 1){
                    &write_hoihoi('リンクいっぱいで捕獲!');
                }

                &error('投稿制限の対象となっています。ご了承ください。');
            }
        }


    }
    if ( $FORM{'action'} ne 'regist' )    {
        if ( $FORM{'pass'} eq "")    {    &error("パスワードを入力して下さい。");    }
        if ( $kanriup == 1 && $FORM{'pass'} ne $password )    {    &error("管理人以外は修正・削除が出来ません。"); }
    }

}


### -------------------------------------------------------------------------
### スパムホイホイ (ログ書き出しコード)
### -------------------------------------------------------------------------
sub write_hoihoi {

    local($wd) = $_[0];
    if ($hoi_file eq ""){$hoi_file='spamlog.dat';}
    # スパムホイホイ書き込み部分 -------------------------
    $log9 .= "$wd\n";
    $log9 .= "============================================\n";
    open(OUT, ">> $hoi_file");
    eval {flock (OUT,2); };
    print(OUT $log9);
    close(OUT);

}

###<-------------------------------------------------------------
###<---   日付変換
###<--------------------------------------------------------------
sub timeconv {
    if ( $_[0] =~ /\(/ ) { return $_[0] ; }    #旧Ver対応
    ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($_[0]);    #システム日時・時刻取得
    $year  = sprintf("%02d",$year + 1900);    $month = sprintf("%02d",$mon + 1);    $mday  = sprintf("%02d",$mday);
    $hour  = sprintf("%02d",$hour);    $min   = sprintf("%02d",$min);
    if ( substr($month,0,1) == 0 )    {    $month =~ s/0/ /;    }    if ( substr($mday,0,1) == 0 )    {    $mday =~ s/0/ /;    }
    $week = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat') [$wday];
    return "$month/$mday($week) $hour:$min";
}

1;
メンテ
Re: Tackysroomさんの「もっと書き込み隊」へのフィルタ設置 ( No.2 )
日時: 2006/04/22 15:48
名前: まーみん
ありがとうございました!!
お教え下さいました通りにしましたところ
バッチリOKでした!!

これであのスパムから解放されると思うと
ようやく春が訪れたような気がします。

お忙しくなさっておいでのところを、
わかりやすくご丁寧にお教え下さいまして
本当に本当にありがとうございました!!

これからのご活躍をお祈りいたしております!!
本当にありがとうございました!!
メンテ
Re: Tackysroomさんの「もっと書き込み隊」へのフィルタ設置 ( No.3 )
日時: 2006/04/22 22:56
名前: まーみん
たびたびすみません(^^;ゞ

じ、実はお教え頂いたやり方ですと、
半角英数字はバッチリOKだったのですが
日本語だと全文「ひらがな」の書き込みしか
受け付けませんでした。
カタカナや漢字交じりだと
全てアウトでした。

動作見本でもテストさせて頂いたのですが
「コメントを正しくお書きくださいね!」の表示が・・・。

どうしてでしょうか?
お忙しいところ、たびたび申し訳ございませんが、
お手すきの時で結構ですので、
何卒ご教授のほどよろしくお願いいたします!!
メンテ
Re: Tackysroomさんの「もっと書き込み隊」へのフィルタ設置 ( No.4 )
日時: 2006/04/22 23:15
名前: まーみん
ごめんなさい!!m( _ _ )m

自己解決出来ました。
うちの掲示板に全文カタカナで書き込む方がおいででして、
どうしても書き込めなかったのですが、
次回からひらがなを使うように勧めます。

本当に申し訳ございませんでした!!
メンテ
Re: Tackysroomさんの「もっと書き込み隊」へのフィルタ設置 ( No.5 )
日時: 2006/08/02 00:33
名前: おみ
上記の通り書き換えてみたのですが
どうやら最新版(Ver.0.982)では上記のコードではだめなようです。
書き込もうとすると
「メッセージは省略できません」
とエラーがでてしまいます。
最新版に対応するようなコードはどのように書き換えたらよいのでしょうか。
ご教授願えたらと思います。
メンテ
Re: Tackysroomさんの「もっと書き込み隊」へのフィルタ設置 ( No.6 )
日時: 2006/08/18 12:41
名前: たけっひろ!
遅くなってごめんなさい!

最新版(Ver.0.982)ではコメントを入力する部分の名前の設定を変数で指定するようになってます。

と言うことで、$FORM{'comment'} という部分を全て $FORM{$name_comment} というふうに修正すればいいのですが、このところ日本語のスパムが来まくってるようなのでこの際もうちょっとちゃんとした対策をとった方が良さそうです。

ちょっと考えてみますね
メンテ
Re: Tackysroomさんの「もっと書き込み隊」へのフィルタ設置 ( No.7 )
日時: 2006/08/18 14:01
名前: たけっひろ!
http://www.j-pca.com/bbs_test/

に、もっと書き込み隊の改造見本を追加しました。
これは結構強力にスパムをカットすると思います。
IPスパムフィルタは入れなくても取りあえず大丈夫なので、既存の「mkakikomitai.cgi」 を置き換えていただくだけで取りあえずは動くと思います。
メンテ
Re: Tackysroomさんの「もっと書き込み隊」へのフィルタ設置 ( No.8 )
日時: 2006/09/08 20:54
名前: ゆっち☆彡 参照: http://sakaagari.12-3.jp/
横レス失礼致します。 m(_ _)m

私が運営しているサイトには、「もっと書き込み隊」の古いバージョンの改造版とBlogで「Serene Bach」を使っています。
「Serene Bach」の方は「IPスパムフィルター」を導入させていただいてコメントスパムは収まったのですが、今度は掲示板の方にコメントスパムが入るようになりました。
たけっひろ! さんの改造版を参考にCGIをいじってみましたが中途半端だったのか収まる気配がありません。
「IPスパムフィルター」を両方に適用させる事は可能でしょうか。

どうかお助けください。 
メンテ
Re: Tackysroomさんの「もっと書き込み隊」へのフィルタ設置 ( No.9 )
日時: 2006/09/08 22:39
名前: たけっぴろ!
おそらく、改造がちゃんと出来てないんだと思います

掲示板の場合は

http://www.j-pca.com/bbs_test/

で、公開してる「もっと書き込み隊」の改造サンプルの通りの改造が出来ていればスパムはまず入るようなことは無くなります
あの改造見本は非常に強力です....

もし自分でどうしても出来ないような場合は、mkakikomitai.cgi をメールに添付して送ってみてください
一回見てみます

メールはこちらまで  >>  takeppiro@j-fm.net


ちなみに掲示板のスパム対策の考察はこっちにまとめてます
一度目を通しておいてくださいね

http://www.j-fm.net/bbs.htm
メンテ
Re: Tackysroomさんの「もっと書き込み隊」へのフィルタ設置 ( No.10 )
日時: 2006/09/08 23:04
名前: ゆっち☆彡 参照: http://sakaagari.12-3.jp/
たけっぴろ!様
早速のご回答ありがとうございます。
お言葉に甘えてCGIを送らせて頂きました。
お手数ですが、よろしくお願いします。
メンテ

Page: 1 |

題名 スレッドをトップへソート
名前
E-Mail ★メールアドレスは非表示です
入力頂くとレスが付くとメールでお知らせ致します♪    詳細はこちらをご覧くださいませ!
URL
パスワード (記事メンテ時に使用)
コメント   参照   ( 太字    赤字    青字    緑字 )    [tab]
添付イメージ (JPG,PNG,GIF)

   クッキー保存