英文スパム対抗策


らくだ

Kent 系 BBS スクリプトの改造

私は kent 系のスクリプトは使ったことがありませんが、お世話になっている某所の掲示板がかなりしつこいスパムにあって困っていたようなので、ここに対抗策を書いてしまうま。

改造していない Joyful Note を利用している前提で、出来るだけ perl を知らない人にも分かるように説明します。

書き込みに日本語の文字を含まない、英数字だけの書き込みをエラーにする改造です。このため、悪意無い英数字だけの書き込みも遮断してしまいます。

  1. 使用中のメインスクリプトファイル(素のままだと joyful.cgi)を FFFTP などの FTP ソフトでローカルにアスキー形式でダウンロードする。(既にコピーがローカルにある場合は不要。)
  2. ダウンロードしたファイルをメモ帳などのエディタ(出来れば行番号が表示できるもの)で開く。
  3. 「sub form_check」と言う文字を検索してそのあたりを表示する。素のままのスクリプトだと 1387-1410 行。
  4. そのブロックの「# 入力項目のチェック」と書いてある次の行に、次の1行を追加(コピー&ペースト)する。
    if ($in{'comment'} !~ m/[\x80-\x9f\xe0-\xfc]/) { &error("日本語が含まれていません"); }
    
  5. 上書き保存したファイルを、 FTP ソフトでアスキー形式でアップロードする。

実際に運営して試したわけではありませんので、何か不具合があるかも知れませんのであしからず(瀑。

例の改造版や、 joyful note 以外の kent 系スクリプトでも、行番号は異なりますが、同様の方法で対抗できると思います。

このリソースの情報
日記:2167
2007年12月14日(金) 17:37更新
3173閲覧
公開レベル 1
関連コメント %02d〜%02d(%02d件中)

関連コメント 01〜08(08件中)

2008年08月02日(土) 14:59

Shinobu

ちょうど掲示板で迷惑投稿に困っていたので、目からうろこでした。 ありがとうございました。

このリソースの情報
コメント:21
2008年08月02日(土) 14:59更新

2006年05月31日(水) 19:03

らくだ

お使いの掲示板でアドレスを変えると言うことは、多分アカウントの変更と言うことだと思いますので、おそらくログが保持できないと思います。どうせログなしで初めからするのなら、自分で設置した方がいいと思いましたが、お使いのレンタルサーバでは自作のスクリプトは設置できないようです。

というか、 CGI をまったく設置したことのない状態で、改造スクリプトを設置、運営するというのは少々ハードルが高いかもしれません。(今まではお使いの掲示板が自分で設置されたものと言う前提で書いていました。)

むしろ、自分でどうこうしようとするよりも、借りている掲示板の管理側に、フィルタを導入するなどの処置をしてもらった方が現実的かもしれません。

このリソースの情報
コメント:20
2006年05月31日(水) 19:03更新

2006年05月31日(水) 18:46

無名人

そうでしたか お手数をおかけしました ここでHPと掲示板を使っているのですが それ以来 変なメールも一日100通以上 アドレスを替えるしかないかなぁと思っていますが きっと替えても 少ししたら同じ状態ですよね

ありがとうございました

このリソースの情報
コメント:19
2006年05月31日(水) 18:46更新

2006年05月30日(火) 15:50

らくだ

どうもこんにちは。どういう事なのかと思ってもうちょっとよく見てみました。

どうやら、そちらの掲示板はいわゆるレンタル掲示板というやつのようですね。レンタル掲示板という物は、普通、スクリプトやデータのファイルを、 FTP で操作することは出来ません。そのため、利用者が任意の改造を施すことは不可能です。

掲示板を自分好みにカスタマイズするには、自作、もしくは公開されている CGI スクリプトに乗り換える必要があります。

このリソースの情報
コメント:18
2006年05月30日(火) 15:50更新

2006年05月30日(火) 15:24

無名人

お世話になっています 低山大好きです 掲示板の方へスプリクトの確認をお願いしたのですが 返答がありません どうしようもありませんね お手数をおかけして 申し訳ありませんでした また 何か有りましたら よろしくお願いいたします

このリソースの情報
コメント:17
2006年05月30日(火) 15:24更新

2006年05月23日(火) 18:33

らくだ

あ、で、 FTP と言うのは、ネット上のサーバのディレクトリにローカルと同じようにファイルをコピーしたり、逆にサーバからローカルにファイルをコピーしたりする仕組みです。で、ウェブサイトを公開する場合、普通はこの FTP でファイルのやり取りをします。その FTP を使ってファイルの操作をするソフトの代表格が FFFTP と言うソフトです。他にはホームページビルダーなどの、ウェブオーサリングツールに機能として内蔵されていたり、同梱されていたりします。で、 FTP でファイルを転送する方法にアスキー転送モードと、バイナリ転送モードがあって、スクリプトファイルなどのテキストファイルはアスキー転送モードで転送する必要があります。その理由は面倒なので割愛させていただきます。

このリソースの情報
コメント:15
2006年05月23日(火) 18:33更新

2006年05月23日(火) 18:20

らくだ

ようこそ。しばらく出ていたので、お返事遅くなりました。

えーっと、猿でも・・猿・・・猿にはどう説明して分からないと思います・・・が、やってみましょう。

えーっと、この手の BBS というのは、 perl というスクリプト言語で書かれた、 CGI スクリプトです。 CGI というのは、サーバがクライアントからデータを受け取ってサーバ側でデータを処理するプログラムを実行して、その結果をクライアント側に送信する仕組みのことを言います。で、スクリプトって言うのは、プログラムと同じような意味です。違うけど。で、スクリプトファイルというのは、要するにそのスクリプトが書かれているファイルのことで、普通は http でそのファイルをリクエストすることで、スクリプトが実行されるわけです。で、そのファイルを書き換えることで、 BBS の CGI スクリプトを改造できるわけです。で、そのスクリプトファイルって言うのは実は、 .txt や .html なんかと同じ、テキストファイルなので、メモ帳なんかのテキストエディタで編集できるんです。そして、 kanto さんの所の BBS は、 kent さんという方が作った、 Joyful Note という CGI スクリプトで、そのスクリプトではメインの joyful.cgi というファイルの、 1387-1410 あたりの form_check というサブルーチンブロックで、クライアントから受け取ったデータのチェックをしているので、そのあたりに英文のみのデータを拒否するスクリプトを書いてやればいいのです。で、その書き加えたファイルをサーバにアップロードしてやれば、間違えがなければ次回からは英文のみのデータは拒否すると言うことになります。この改造するべき部分と、書き方はそのスクリプトによって違います。 kent 系であれば、多少行番号が違うだけで、ほとんど同様に改造できると思いますが、低山大好きさんの所の物はよく似ていますが、著作権表示がないので、どこの何というスクリプトか確認できません。元のスクリプトが分からないと、改造しようがないので、まずはどこの何というスクリプトなのか確認してください。

な感じで理解できたでしょうか・・・

このリソースの情報
コメント:14
2006年05月23日(火) 18:20更新

2006年05月21日(日) 19:11

低山大好き

kantoさんのBBSから来ました 低山大好きです こんにちは 先日 kantoさんの所でお話をしたばかりなのですが ついに うちのBBSにも URLのみの書き込みが続きだしました それで英文スパム対策をとりたいのですが 1.から まったく意味がわかりません 猿でも分かるように教えていただけませんか? うちの掲示板は http://bbs7.fc2.com/php/e.php/hc-midorinokaze/ です

申し訳ありませんが よろしくお願いいたします

このリソースの情報
コメント:13
2006年05月21日(日) 19:11更新
トラックバックURL http://far.usopion.com/trackback.cgi/diary/2167

Usertime : 0.09 / Systemtime : 0.02