投稿時に入力するハンドル名、メールアドレス、URL、タイトル、投稿記事等から、NGワードを検索し、該当したら投稿を拒否する機能を持ったフリーの掲示板CGIスクリプトは無いでしょうか?
NGワードを登録し、それに該当する物が記事にあったら表示しない、といった掲示板は見た事はあるのですが、それをさらに発展させたような感じですかねぇ・・・
最近IPアドレスによる投稿拒否を行っても2,3日後にはプロキシ変えて投稿されるのを繰り返されて迷惑してます。
#ちなみに排除したいワードは「URL」でワンクリ詐欺サイトです・・・
どなたか知ってる方いらっしゃいましたらよろしくお願いいたします。
なお現在KENT WEBさんのyybbsを使用してます。
自分に改造する技術があれば・・・
技術的にはIPアドレスで弾いてるロジックはあるので、そこにNGワード検索でONなら飛ばすみたいな感じで行けるかなぁとか思ってるんですが・・・
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
私もyybbsを使用しているのですが、
最近はURLを羅列しただけの不正書き込みが目立つため、
「URLが三つ以上書き込まれたら拒否する」
というロジックを追加しました。
ご参照ください。
(「URLの自動リンク」がオンの場合です)
挿入場所:
sub auto_link {
という記述がある行のすぐ下
挿入ソース(4行):
my $num = ($_[0] =~ s/http/http/g);
if($num > 2){
&error("書き込みは拒否されました");
}
--------------
「http」という文字が3回以上書き込まれたら拒否のメッセージを表示する、という単純なものです。
この改造以降、今のところ不正書き込みは激減しています。
ご参考までに
No.3
- 回答日時:
KENT WEBさんの「Web Forum」を使用している者です。
yocchan55さんと全く同じようなことで悩んでいたので、こちらのスレッドは大変役に立ちました。
phinexeさんの方法でうまくいきました。
メールアドレスやURL、ハンドル名などにも対応できて良いですね!
どうもありがとうございました。
同じことで困って参考にする方がいらっしゃるかもしれないので、わたしがやってうまくいった方法を補足しておきます。
「Web Forum」の場合、いじるのはwf_init.cgiです。
#----------------#
# 入力チェック #
#----------------#
の真上に
#----------------#
# NGワード設定 #
#----------------#
sub ngword {
open(FH,"./ng.cgi");
@Fdata = <FH>;
close(FH);
$rtrn = 0;
foreach $frch ( @Fdata ){
$frch =~ s/\n//g;
if ( $_[0] =~ /$frch/ ) {
$rtrn = 1;
}
}
return $rtrn;
}
を追加。
#----------------#
# 入力チェック #
#----------------#
の下にある
# 題名入力
if ($in{'sub'} eq "") { &error("「題名」の入力モレです"); }
の下に
# NGワードを判定
if(&ngword($in{'name'}) == 1|| &ngword($in{'message'}) == 1|| &ngword($in{'email'}) == 1 || &ngword($in{'url'}) == 1|| &ngword($in{'sub'}) == 1){
&error("投稿内容に不正な文字列が含まれています。");
}
を追加。
メモ帳などに
ひとつずつ改行しながら禁止したい文字を書いて
「ng.cgi」という名前でwf_init.cgiと同じ場所に保存。
変更したwf_init.cgiと、ng.cgiをアップロード。
ng.cgiのパーミッションはわからなかったので、755でアップロードしました。もっと的確なパーミッションがありそうなので知識のある方はつっこんでください。(^_^;
No.2
- 回答日時:
ちょっと細かく説明します。
yyregi.cgiの371行目を見てください。
#-------------------------------------------------
# 入力確認
#-------------------------------------------------って書いてあります。
ソノ真上に、
sub ngword {
open(FH,"./ng.cgi");
@Fdata = <FH>;
close(FH);
$rtrn = 0;
foreach $frch ( @Fdata ){
$frch =~ s/\n//g;
if ( $_[0] =~ /$frch/ ) {
$rtrn = 1;
}
}
return $rtrn;
}
を入れてください。私が今さっき適当に作ったサブルーチンです。
その次、sub formCheck {ってのが、そのちょっと下にあるかと思います。
その、
> # 名前とコメントは必須
if ($in{'name'} eq "") { &error("名前が入力されていません"); }
if ($in{'comment'} eq "") { &error("コメントが入力されていません"); }
if ($in_email && $in{'email'} !~ /[\w\.\-]+\@[\w\.\-]+\.[a-zA-Z]{2,6}$/) {
&error("Eメールの入力内容が正しくありません");
}
ってヤツの下に、
if(&ngword($in{'name'}) == 1|| &ngword($in{'comment'}) == 1|| &ngword($in{'email'}) == 1 || &ngword($in{'url'}) == 1){
&error("NGワードにひっかかりました。");
}
これを入れて保存してください。
NGワード設定したい文字列を、ng.cgiというファイルに入れて、yyregi.cgiと同じファイルに入れて、
一行ずつ、NGワードに設定したいワードを入力して保存しておいてください。
ちなみに、改造する際、変なところ触ると、いっぱつで動かなくなるので注意してください。
それと、ヘタに、「死ね」とか入れると、違う言葉でもひっかけてしまうので、それなりに抑えたほうが良いです。
No.1
- 回答日時:
最近やはり同じような被害にあってます。
いろいろ対策を考えなきゃなあと、いろいろ案を練ってます。
で、とりあえず『禁止文字』、『禁止URL』などで対応しています。
掲示板で2箇所に設定すれば良いので非常に簡単です。
詳しくは、
http://joho.boo.jp/memo/writer.cgi?mode=detail&n … を参照下さい。
参考URL:http://joho.boo.jp/
なるほど。改造といっても大掛かりにはならないのですね。
試してみる価値ありそうです。
勉強がてらソース解析しながらやってみます。
参考の方だとメッセージ中にNGワードがあった場合の改造ですが、
他にハンドル名、メールアドレス、タイトル、URL等も
NGワード指定出来るようにしてみたいですね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI (フリーの)ツリー掲示版CGI、昔は多用させてもらいましたが・・今セキュリティ上どうでしょう? 2 2023/06/25 07:18
- その他(IT・Webサービス) もし次のようなサイトを作るのに 必要なプログラミング言語は 1 2022/06/04 09:43
- その他(悩み相談・人生相談) な、め、り、ん、こ。 ぺ、ろ、り、ん、こ。 9 2023/05/10 21:10
- その他(SNS・コミュニケーションサービス) ネット掲示板の誹謗中傷について ある掲示板に自身の悩みについて投稿し、回答欄が荒れて私もそれに応戦し 2 2022/12/13 19:20
- その他(悩み相談・人生相談) 自分は6年前に知恵袋で、自分の性のフェチな内容について投稿したことがあります。 複数のうちのある回答 3 2023/03/22 12:11
- WordPress(ワードプレス) ワードプレス。複数の投稿ページを、複数の固定ページに区別して、表示させる方法は 1 2023/03/04 19:54
- Instagram 『Instagram』について 私は好きな芸能人の投稿を見たくてInstagramを始めました。 そ 4 2022/10/09 05:02
- 社会学 「嘘」って言葉がNGワードになってました。 おかしくないですか? 4 2023/03/31 19:19
- Windows 10 Windows11でMP3 CDを作る方法 17 2022/10/17 19:17
- WordPress(ワードプレス) ワードプレスで、投稿一覧ページにタグを表示する方法 投稿につけたタグを、記事一覧ページにもカテゴリと 1 2023/05/10 21:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
perl 矢印演算子 -> の使い方
-
CGIの設置が分かりません・・・
-
KENT WEB(昨日の続きです)
-
燃焼熱
-
EXCELファイルに誰がアクセスし...
-
《エクセルVBA》「他の人が該当...
-
ASPでDLLの使用方法
-
ASPから既存のexcelブックを開...
-
XサーバーでCGIを使うには??
-
WIn32API ディレクトリ内ファイ...
-
実行属性って?
-
古ーくからフリーのtree.cgi掲...
-
.htaccessを2つ以上設置した場合
-
VBAでサーバーにアクセスするに...
-
CGIが壊れるて?
-
contenttypeについて
-
.cgi拡張子のままCGIファイルを...
-
Perl 別ドメインのファイル存在...
-
CGIって何ですか?簡潔に教えて...
-
cgiファイルを直接は見れなくす...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
a.cgiからb.cgiを
-
perl 矢印演算子 -> の使い方
-
KENT WEB(昨日の続きです)
-
nickyのカテゴリ分け機能
-
Gecko エンジンでの Location ...
-
iframeの中から、親frameのURL...
-
CGIの設置が分かりません・・・
-
カタカナを英語やフランス語に...
-
水天宮前・人形町周辺深夜まで...
-
cgiからcgiを呼び出す方法
-
カレンダー(スケジュール)を...
-
メールフォームで受け付け>定...
-
十把ひとからげ
-
【apache】httpd.confのAddHand...
-
MacBookのメモリ増設について
-
<!--#exec cmdについて
-
CGIのQAサイト
-
index.cgi
-
ドロップダウンリストの情報を...
-
一つのページに複数のフォーム...
おすすめ情報