Kent 系 BBS スクリプトの改造
私は kent 系のスクリプトは使ったことがありませんが、お世話になっている某所の掲示板がかなりしつこいスパムにあって困っていたようなので、ここに対抗策を書いてしまうま。
改造していない Joyful Note を利用している前提で、出来るだけ perl を知らない人にも分かるように説明します。
書き込みに日本語の文字を含まない、英数字だけの書き込みをエラーにする改造です。このため、悪意無い英数字だけの書き込みも遮断してしまいます。
- 使用中のメインスクリプトファイル(素のままだと joyful.cgi)を FFFTP などの FTP ソフトでローカルにアスキー形式でダウンロードする。(既にコピーがローカルにある場合は不要。)
- ダウンロードしたファイルをメモ帳などのエディタ(出来れば行番号が表示できるもの)で開く。
- 「sub form_check」と言う文字を検索してそのあたりを表示する。素のままのスクリプトだと 1387-1410 行。
- そのブロックの「# 入力項目のチェック」と書いてある次の行に、次の1行を追加(コピー&ペースト)する。
if ($in{'comment'} !~ m/[\x80-\x9f\xe0-\xfc]/) { &error("日本語が含まれていません"); } - 上書き保存したファイルを、 FTP ソフトでアスキー形式でアップロードする。
実際に運営して試したわけではありませんので、何か不具合があるかも知れませんのであしからず(瀑。
例の改造版や、 joyful note 以外の kent 系スクリプトでも、行番号は異なりますが、同様の方法で対抗できると思います。
関連コメント 01〜08(08件中)
2008年08月02日(土) 14:59
ちょうど掲示板で迷惑投稿に困っていたので、目からうろこでした。 ありがとうございました。
2006年05月31日(水) 19:03
お使いの掲示板でアドレスを変えると言うことは、多分アカウントの変更と言うことだと思いますので、おそらくログが保持できないと思います。どうせログなしで初めからするのなら、自分で設置した方がいいと思いましたが、お使いのレンタルサーバでは自作のスクリプトは設置できないようです。
というか、 CGI をまったく設置したことのない状態で、改造スクリプトを設置、運営するというのは少々ハードルが高いかもしれません。(今まではお使いの掲示板が自分で設置されたものと言う前提で書いていました。)
むしろ、自分でどうこうしようとするよりも、借りている掲示板の管理側に、フィルタを導入するなどの処置をしてもらった方が現実的かもしれません。
2006年05月31日(水) 18:46
そうでしたか お手数をおかけしました ここでHPと掲示板を使っているのですが それ以来 変なメールも一日100通以上 アドレスを替えるしかないかなぁと思っていますが きっと替えても 少ししたら同じ状態ですよね
ありがとうございました
2006年05月30日(火) 15:50
どうもこんにちは。どういう事なのかと思ってもうちょっとよく見てみました。
どうやら、そちらの掲示板はいわゆるレンタル掲示板というやつのようですね。レンタル掲示板という物は、普通、スクリプトやデータのファイルを、 FTP で操作することは出来ません。そのため、利用者が任意の改造を施すことは不可能です。
掲示板を自分好みにカスタマイズするには、自作、もしくは公開されている CGI スクリプトに乗り換える必要があります。
2006年05月30日(火) 15:24
お世話になっています 低山大好きです 掲示板の方へスプリクトの確認をお願いしたのですが 返答がありません どうしようもありませんね お手数をおかけして 申し訳ありませんでした また 何か有りましたら よろしくお願いいたします
2006年05月23日(火) 18:33
あ、で、 FTP と言うのは、ネット上のサーバのディレクトリにローカルと同じようにファイルをコピーしたり、逆にサーバからローカルにファイルをコピーしたりする仕組みです。で、ウェブサイトを公開する場合、普通はこの FTP でファイルのやり取りをします。その FTP を使ってファイルの操作をするソフトの代表格が FFFTP と言うソフトです。他にはホームページビルダーなどの、ウェブオーサリングツールに機能として内蔵されていたり、同梱されていたりします。で、 FTP でファイルを転送する方法にアスキー転送モードと、バイナリ転送モードがあって、スクリプトファイルなどのテキストファイルはアスキー転送モードで転送する必要があります。その理由は面倒なので割愛させていただきます。
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 系であれば、多少行番号が違うだけで、ほとんど同様に改造できると思いますが、低山大好きさんの所の物はよく似ていますが、著作権表示がないので、どこの何というスクリプトか確認できません。元のスクリプトが分からないと、改造しようがないので、まずはどこの何というスクリプトなのか確認してください。
な感じで理解できたでしょうか・・・
2006年05月21日(日) 19:11
kantoさんのBBSから来ました 低山大好きです こんにちは 先日 kantoさんの所でお話をしたばかりなのですが ついに うちのBBSにも URLのみの書き込みが続きだしました それで英文スパム対策をとりたいのですが 1.から まったく意味がわかりません 猿でも分かるように教えていただけませんか? うちの掲示板は http://bbs7.fc2.com/php/e.php/hc-midorinokaze/ です
申し訳ありませんが よろしくお願いいたします