KENT-WEB サポートコーナー 過去ログ [ 0058 ]


記事No: 13668
投稿日: 2015/01/24(Sat) 11:55:11
タイトルJoyful Noteで、日本語チェックが機能しません
ID情報: chebu_3
投稿者: chebu_3
URLhttp://cogimon-ya.namaste.jp/joyful/joyful.cgi

初めまして、お世話になります。掲示板「Joyful Note」を使わせて頂いております。

init.cgiで、日本語チェックをYesの1に設定してあるにも関わらず、ここ数日タイトル・本文共に英文のスパムが数回投稿されてしまっております。

拒否IPアドレスにも設定したのですが(「137.175.20.*,」というように)、どういう訳か同じIPアドレスから投稿が繰り返されています。設定の仕方が間違っているのでしょうか?

試しに自分でも、タイトル・本文とも英文のみで投稿してみましたら、そのまま受け付けられてしまいました。

cgiに関して詳しくなく、詳細を読んでやっと設置したような者です。内容に不備がありましたら追記致します。どうぞよろしくお願い致します。

【追記】
自分でタイトル・本文とも「test/test」として投稿したところ、本文に日本語が含まれていないとのエラーがでました。ということは、投稿された英文スパム(どう見ても英文だけに見える)の内容が、英文とみなされていないのでしょうか?

長くなって申し訳ありません、最近のスパム投稿の例です。
------
件名 :how to wear Cartier love jewellery girl rose gold
(E-mail、URL共に私(管理人)が使用しているもの)

Maybe Jesus would be ashamed of your ignorance. Every ethnic group has spent time in chains and the word “slave” comes from when the Vikings would raid the Slavic people for captives, both of whom were caucasion. Almost every single African slave was put into chains by other Africans, especially North African Muslims. Sort of ironic that so many blacks, in America, now think they are descended from Muslims. Most Southerners who fought in the Civil War did not do so to protect the rights of a minority of plantation owners to possess slaves but because they felt oppressed from big government in Washington. Sound familiar? It ain’t so black and white as you would like to think.

----
件名 :609330
お名前:how to wear Cartier love jewellery girl rose gold
E-mail:zenjdjkdz@hotmail.com
URL :http://isonepiece.wordpress.com/
添付 :

Maybe Jesus would be ashamed of your ignorance. Every ethnic group has spent time in chains and the word “slave” comes from when the Vikings would raid the Slavic people for captives, both of whom were caucasion. Almost every single African slave was put into chains by other Africans, especially North African Muslims. Sort of ironic that so many blacks, in America, now think they are descended from Muslims. Most Southerners who fought in the Civil War did not do so to protect the rights of a minority of plantation owners to possess slaves but because they felt oppressed from big government in Washington. Sound familiar? It ain’t so black and white as you would like to think.


記事No: 13669
投稿日: 2015/01/25(Sun) 02:17:27
タイトルRe: Joyful Noteで、日本語チェックが機能しません
ID情報: hirayama
投稿者: hirayama
URLhttp://shade-search.com/sts/fsw/wiki.cgi

“slave”のダブルクォーテーションとain’tのシングルクォーテーションが全角になっているので、
日本語が含まれていると判断されているようです。
半角に変えて "slave" ain't とすると日本語とは判別されないと思うので、

regist.cgi616行目あたりの

if ($in{comment} !~ /[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC]/) {
error("メッセージに日本語が含まれていません");
}



my $comment = $in{comment};
$comment =~ s/“/"/g;
$comment =~ s/”/"/g;
$comment =~ s/’/'/g;
if ($comment !~ /[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC]/) {
error("メッセージに日本語が含まれていません");
}

と変えてみてください。


記事No: 13670
投稿日: 2015/01/25(Sun) 10:13:49
タイトルRe^2: Joyful Noteで、日本語チェックが機能しません
ID情報: chebu_3
投稿者: chebu_3
URLhttp://cogimon-ya.namaste.jp/joyful/joyful.cgi

hirayama様

ご回答ありがとうございます。早速変えてみました。

regist.cgi、現在このような状態です。
#-----------------------------------------------------------
# 日本語チェック
#-----------------------------------------------------------
sub jp_wd {
my $comment = $in{comment};
$comment =~ s/“/"/g;
$comment =~ s/”/"/g;
$comment =~ s/’/'/g;
if ($comment !~ /[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC]/) {
error("メッセージに日本語が含まれていません");
}
}


試しに投稿された英文スパムをコピペして投稿してみたのですが、やはり投稿が受け付けられてしまいました。投稿された状態をスクリーンショットで撮ったものです↓
https://drive.google.com/file/d/0B7LNTNcEpCG3eGRMcjdYMzNkZ0E/view?usp=sharing

何度も申し訳ありません。他に考えられる原因がありましたら、ご教示下さい。どうぞよろしくお願い致します。


(尚、関係ないかもしれませんが、編集に使用しているのはMacのテキストエディット、サーバーはロリポップのレンタルサーバーです。)


記事No: 13671
投稿日: 2015/01/25(Sun) 11:16:25
タイトルRe^3: Joyful Noteで、日本語チェックが機能しません
ID情報: teketen
投稿者: てけてん

それでは、hirayamaさんの修正案を

my $comment = $in{comment};
$comment =~ s/[\x8167]/"/g;
$comment =~ s/[\x8168]/"/g;
$comment =~ s/[\x8166]/'/g;
$comment =~ s/[\x8165]/'/g;
if ($comment !~ /[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC]/) {
error("メッセージに日本語が含まれていません");
}

これに変更したらどうなりますか?


記事No: 13672
投稿日: 2015/01/25(Sun) 12:08:47
タイトルRe^4: Joyful Noteで、日本語チェックが機能しません
ID情報: chebu_3
投稿者: chebu_3
URLhttp://cogimon-ya.namaste.jp/joyful/joyful.cgi

てけてん様 ご回答ありがとうございます。

早速以下のように修正しました。
#-----------------------------------------------------------
# 日本語チェック
#-----------------------------------------------------------
sub jp_wd {
my $comment = $in{comment};
$comment =~ s/[\x8167]/"/g;
$comment =~ s/[\x8168]/"/g;
$comment =~ s/[\x8166]/'/g;
$comment =~ s/[\x8165]/'/g;
if ($comment !~ /[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC]/) {
error("メッセージに日本語が含まれていません");}
}


状況は変わりませんでした。最初のスレッドにコピペしたものを含め、その他の英文スパム投稿(下記スクリーンショット)も、コピペして投稿したところ同様に受け付けられてしまいました。
https://drive.google.com/file/d/0B7LNTNcEpCG3QXg0SFRmQU5GYUU/view?usp=sharing


地道に投稿の都度消していくしかないのでしょうか…何か対処法はありますでしょうか?お知恵をお貸しくださいませ。


記事No: 13673
投稿日: 2015/01/25(Sun) 12:56:45
タイトルRe^5: Joyful Noteで、日本語チェックが機能しません
ID情報: teketen
投稿者: てけてん

http://cogimon-ya.namaste.jp/joyful/check.cgi
ご利用のJoyfulNoteの」バージョンは、v3.7ですか?
私が動作確認したのは、最新のv5.21です。
それだと、hirayamaさんの修正案も含め、ちゃんと拒否します。
別途テストで、最新版を改造してからアップロードして、動作確認した場合はどうなりますか?


記事No: 13675
投稿日: 2015/01/25(Sun) 23:30:52
タイトルRe^6: Joyful Noteで、日本語チェックが機能しません
ID情報: chebu_3
投稿者: chebu_3
URLhttp://cogimon-ya.namaste.jp/joyful/joyful.cgi

てけてん様、ありがとうございます。

使用中のJoyfulNoteはv3.7でした。明日最新の5.21をを改造して(素人なもので改造に時間がかかりますため…)もう一度トライして、結果をご報告致します。

hirayama様も本日はありがとうございました。また改めてご報告させて頂きます。


記事No: 13676
投稿日: 2015/01/26(Mon) 17:35:10
タイトルRe^7: Joyful Noteで、日本語チェックが機能しません
ID情報: chebu_3
投稿者: chebu_3
URLhttp://cogimon-ya.namaste.jp/joyful/joyful.cgi

hirayama様、てけてん様、お世話になっております。

今日、最新版5.21を改造&過去ログの移行を試みたのですが…どうしても、今までのような掲示板のレイアウトを再現することができず(形が崩れたり文字化けしたり…と)、断念してしまいました。
v3.7のほうは、cgiの基本的なことを理解しない上で無理矢理改造したので、自分でもどこをどういじったかほとんど覚えていない有り様で、今回も長時間かけてみましたがどうしてもうまくいきませんでした。

せっかく修正案を教えて頂きましたのに、大変申し訳ありません。英文スパム投稿は今後地道に削除することにします。

後日、またじっくり取り組んでうまくいった日には、ご報告させて頂きたいと思います。

ご教示本当にありがとうございました。


記事No: 13682
投稿日: 2015/01/27(Tue) 15:29:50
タイトルRe^8: Joyful Noteで、日本語チェックが機能しません
ID情報: teketen
投稿者: てけてん

もう、見てらっしゃらないかも知れませんが

sub jp_wd {
my $comment = $in{comment};
$comment =~ s/[\x8167]/"/g;
$comment =~ s/[\x8168]/"/g;
$comment =~ s/[\x8166]/'/g;
$comment =~ s/[\x8165]/'/g;
if ($comment !~ /[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC]/) {
error("メッセージに日本語が含まれていません");}
}

と改造されたままでしたら、

if ($comment !~ /[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC]/) {

の前の行に、

my $count;
for my $com (split(/ /,$comment)) {
$com =~ s/(s?https?:\/\/([\w-.!~*'();\/?:\@=+\$,%#]|&)+)//;
$count++ if($com !~ /[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC]/);
}
error('予期せぬエラーです') if($count > 5);

を記述してみてください。
コメントを半角スペースで区切って、区切られた文章(文字)の中に全角文字以外のものがあればカウントしていき、6カウント以上になったらエラーを出すものです。
http://〜のURLはカウントしません。
英文の場合は、単語単位ということです。
例えば、
Maybe Jesus would be ashamed of your ignorance.
という文章ならば、半角スペースで区切られたものが8ブロックあり、それが英単語のみなので、8カウントということになりエラーになります。
($count > 5)の部分がカウント回数の指定なので、5の数字をご自分で調節して下さい。

普通の投稿に障害が出る場合は、もとに戻してください。


記事No: 13730
投稿日: 2015/02/06(Fri) 20:58:54
タイトルRe^9: Joyful Noteで、日本語チェックが機能しません
ID情報: chebu_3
投稿者: chebu_3
URLhttp://cogimon-ya.namaste.jp/joyful/joyful.cgi

てけてん様、お返事を頂いていたのをつい先ほど気がつきました!遅ればせながら、ありがとうございます!

早速if〜から始まる行の前に、教えていただいた内容を記述してみましたが、投稿してみると

Software error:
Unmatched ( in regex; marked by <-- HERE in m/( <-- HERE s?https?:/ at regist.cgi line 606, <DATA> line 855.

と表示され、投稿ができなくなってしまいました。

それから、これはどういうわけか全くわからないのですが、この後修正したものを元に戻したところ(No.13672で教えて頂いた状態)、日本語で投稿しようとしても「メッセージに日本語が含まれていません」のエラーが出るようになってしまいました。最初にhirayama様がNo.13669で教えて下さったものに変えても、こちらで相談する前の最初の状態に戻しても、やはり「メッセージに日本語が〜」のエラーが……

前は、いろいろ変えても受け付けてしまう状態でしたが、今度は日本語を投稿しても「メセージに日本語が含まれていません」と表示される、謎の状態になってしまいました。

v3.7で改造前のものを保存してありましたので、regist.cgiファイルを入れ替えることで、とりあえず日本語の投稿はできるようになったのですが、一体何が起きているのかもうサッパリで……

---最近はこのような英文投稿があったのですが↓---
I can only echo so many other pleas for greater transparency. I have never deliberately tried to falsify my site content for better ranking, it is just a good honest niche resource site, loaded to the gunnels with quality content, and only linked to by other sites who value my content, or niche-specific directories.
-----
最初にhirayama様からご指摘のあった、全角のダブルクォーテーションやシングルクォーテーションはありませんが、コンマやピリオドも、どう見ても半角のようで、一体どうなっているのか、さっぱりわからなくなってしまいました。

なかなかうまくいかず、何度も申し訳ありません。もしまだ対処法として考えられる方法がありましたら、ご教示下さい。どうぞよろしくお願い致します。

また、今回はお返事が遅くなってしまいまして大変失礼致しました。


記事No: 13732
投稿日: 2015/02/07(Sat) 12:12:45
タイトルRe^10: Joyful Noteで、日本語チェックが機能しません
ID情報: teketen
投稿者: てけてん

前の投稿で

> 最新版5.21を改造&過去ログの移行を試みたのですが

とおっしゃっていましたが、このスレッドで提示された修正案の他に、テンプレート以外のスクリプトに何か改造されていますか?

最新版を、今の掲示板とは別に、新規でNo.13682で私が提示した修正案のみで改造して、他はデフォルトのまま動作テストした場合はどうなりますか?
(動作テストなので、ログの移行とかデザインなどは変更しなくてよいです)
正常に投稿出来たり、英文の投稿を拒否出来るのなら、chebu_3さんが他に改造されている部分に、何か問題がある可能性もあります。
それをチェックするには、何も改造されていないv3.7で同様に試すことです。

もしも、今回の改造だけなのに動作しないという場合は、regist.cgiをregist.txtに変えてアップロードし、そのアドレスを教えてください。
(または、今使われているjoyful関連のファイルを圧縮ファイルに一まとめにして、それをアップロードしてくださってもかまいません。
というか、その方が良いです)
ただし、私が見たからといって、問題が解決するかは保証できないので、その点はご了承ください。

最新版を利用できない理由が、デザインのみでしたら、v3.7と最新版では、テンプレートファイルの仕様が若干違うので、その所為で表示が崩れているのだと思います。
最新版のテンプレートファイルと、見比べて変更してみて下さい。

-----
投稿した後に、ご利用のバージョンで、日本語の合言葉を投稿するという案が浮かびました。
画像認証とは別に。
これだと、あなただけの掲示板の仕様になるので、意外と効果があるかもしれません。
この方法でも良ければ、regist.cgiをregist.txtに変えてアップロードし、そのアドレスを教えてください。


記事No: 13739
投稿日: 2015/02/09(Mon) 20:47:43
タイトルRe^11: Joyful Noteで、日本語チェックが機能しません
ID情報: chebu_3
投稿者: chebu_3
URLhttp://cogimon-ya.namaste.jp/joyful/joyful.cgi

てけてん様 何度も本当にありがとうございます。返信が遅くなりまして失礼致しました。

> 前の投稿で

> > 最新版5.21を改造&過去ログの移行を試みたのですが
>
> とおっしゃっていましたが、このスレッドで提示された修正案の他に、テンプレート以外のスクリプトに何か改造されていますか?

→前回移行を試みた際には、過去ログとレイアウトの改造を先に行おうとして、結局文字化けやレイアウト崩れ等うまくいかなかったため、こちらで教えて頂いたスクリプトの改造までは至らずにあきらめておりました。



> 最新版を、今の掲示板とは別に、新規でNo.13682で私が提示した修正案のみで改造して、他はデフォルトのまま動作テストした場合はどうなりますか?
> (動作テストなので、ログの移行とかデザインなどは変更しなくてよいです)

試してみました。
http://cogimon-ya.namaste.jp/joyfultest/joyful.cgi

regist.cgiの修正なし・No.13669・No.13671の修正で3回試してみて英文投稿が受け付けられ、現在てけてん様のNo.13682にしてありますが、日本語・英文共に下記エラーがでて投稿ができない状態です。
----
Software error:
Unmatched ( in regex; marked by <-- HERE in m/( <-- HERE s?https?:/ at regist.cgi line 623, <DATA> line 855.
----

まさかと思いつつ念のためinit.cgiの日本語チェックの項目を確認したのですが、ちゃんとYesの1にはなっています…

ご面倒をおかけします、今使っているjoyful関連ファイルを圧縮してアップロードしました。
http://cogimon-ya.namaste.jp/joyful.zip

(最新版のjoyfulで試した上記の掲示板のregist.txtもこちらにアップロードしました)
http://cogimon-ya.namaste.jp/regist.txt


> 最新版を利用できない理由が、デザインのみでしたら、v3.7と最新版では、テンプレートファイルの仕様が若干違うので、その所為で表示が崩れているのだと思います。
> 最新版のテンプレートファイルと、見比べて変更してみて下さい。

おっしゃる通り、レイアウトを今のまま維持したいのと、過去ログを引き継ぎたいのですが、テンプレートやスタイルシートの場所が最新版では大分(←素人にとっては…なのですが)変わってしまったようで、見比べながら半日程粘ったのですが、ついには文字化けを起こしてしまい断念しました……

日本語での合言葉を投稿するという方法も、英文スパムメールを避けられるなら大歓迎(?)です。

何度もご面倒をおかけします。ファイルをご覧になって、誤りなどありましたらご指摘下さい。どうぞよろしくお願い致します。


記事No: 13740
投稿日: 2015/02/10(Tue) 11:00:02
タイトルRe^12: Joyful Noteで、日本語チェックが機能しません
ID情報: teketen
投稿者: てけてん

上げて下さったスクリプトを拝見して、エラーの原因がわかりました。
何故か、改造した部分のスクリプトの\(半角円マーク)が、すべて別の文字になっていました。
(私の環境(Windows8.1でTeraPad使用)だと、半角スペースに見えますが文字コードが違うようです)
その所為で、エラーになっています。
Macでテキストエディットをご利用ということですが、コピー&ペーストで貼り付けられましたか?
掲示板とテキストエディタに記述されたものと見比べて、掲示板で\と書かれてある部分を入力し直してみて下さい。

> 日本語での合言葉を投稿するという方法も、英文スパムメールを避けられるなら大歓迎(?)です。

では、取りあえずこちらの方法もご紹介しますね。
最新版、v3.7どちらにも対応しています。

合言葉を入力する方法と、「今年の干支」を漢字(子丑寅卯…のように)又は、ひらがな(ねずみ、うし、とら、うさぎ…のように)で入力する方法です。
設定で、どちらを利用するかを選べますし、両方使うこともできます。
(これを利用する場合、今までこのスレッドで改造したもの(日本語判定)は、使用してもしなくても良いです)

regist.cgi

sub regist {
# フォーム入力チェック
&form_check;

の次の行に

# 追加 ■■
if($cf{watchword}) {
&error('合言葉が違います') if($in{$cf{word_name}} ne $cf{watchword});
}
if($cf{eto}) {
$ENV{TZ} = "JST-9";
my $time = time;
my $y = (localtime($time))[5] +1900;
my $eto = {
'kanji' => ['子','丑','寅','卯','辰','巳','午','未','申 ','酉','戌','亥'],
'kana' => ['ねずみ','うし','とら','うさぎ','たつ','へび','うま','ひつじ','さる ','とり','いぬ','いのしし']
};
my $et = ($y - 4) % 12;
&error('え〜と…違います') if($in{eto} !~ /^($eto->{'kanji'}[$et]|$eto->{'kana'}[$et])$/);
}
# 追加 ここまで■■

を挿入します。

init.cgi

設定項目の最後に


# -------------------------------------------------------------- #
# 改造による追加 ■■

# 合言葉を指定。
# 合言葉を使用しない場合は、$cf{watchword} = '';
# 全角半角混ざってもOK。
# 但し、例えば、「合言葉」を指定した場合、「あいことば」「アイコトバ」「合ことば」などはエラーになります。
$cf{watchword} = '';

# 合言葉を入力するフォームのinputのname値を指定。半角英数字で。
# ここで指定したname値を、テンプレートファイルのbbs.htmlの入力フォームにも<input>タグを記述して下さい。
# 例えば、$cf{word_name} = 'watchword'; と指定したら
# テンプレートファイルには、<input type="text" name="watchword" value="">を記述(size=""は好きな値で)。
# これは、定期的に変更してください(一緒にname=""の値も変更)
$cf{word_name} = 'watchword';

# 今年(毎年変わります)の干支を入力してもらう場合は1を、そうでない場合は0を指定
# $cf{eto} = 1; にした場合、上の合言葉と同様、bbs.htmlの入力フォームに、
# <input type="text" name="eto" value=""> を記述して下さい(size=""は好きな値で)。
$cf{eto} = 1;

# -------------------------------------------------------------- #
# 改造による追加ここまで ■■


を挿入し、設定します。
テンプレートファイルのbbs.htmlの入力フォームに、上記説明の通り、記述します。
使用しないもの及び、使わなくなった時は、記述をしないでください。
(設定を無効にしたからといって、記述がなくなるわけではありませんので)

また、今年の干支を入力してもらう場合は、入力フォームにその旨の説明を明記して下さいね。
漢字は、今年なら「ひつじ」なので、羊ではなく未と入力というように、干支の漢字となります。

以上です。
上げて下さった圧縮ファイル一式と、regist.txtは、サーバーから削除してください。

これで様子を見てみてください。


記事No: 13741
投稿日: 2015/02/10(Tue) 13:52:16
タイトルRe^13: Joyful Noteで、日本語チェックが機能しません
ID情報: chebu_3
投稿者: chebu_3
URLhttp://cogimon-ya.namaste.jp/joyful/joyful.cgi

てけてん様

何度もありがとうございます!

Macのテキストエディットでコピー&ペーストで編集しました。(以前にもダブルクオーテーション「"」を入力しようとしても勝手に「“」に置き換わってしまって困ったことがありました…)

今、Mac OS X YosemiteのSafariから掲示板を閲覧しておりますが、もしかしたらブラウザ上でも、文字の見え方が違っているのかもしれません。確認したいのですが、てけてんさんからの回答で、「半角円マーク」とおっしゃってる文字が、半角のバックスラッシュ「\」に見えています。これは全部、半角の「¥」なのでしょうか?

ブラウザでは、今回頂いた回答の文章が、このように見えています
https://drive.google.com/file/d/0B7LNTNcEpCG3YjdrZ3pFT3U0VzQ/view?usp=sharing

No.13682は、このように見えています
https://drive.google.com/file/d/0B7LNTNcEpCG3bkNfYjBrbU04dEE/view?usp=sharing

半角バックスラッシュに見えているところは、全部半角の¥マークなのでしょうか?


記事No: 13742
投稿日: 2015/02/10(Tue) 16:55:57
タイトルRe^14: Joyful Noteで、日本語チェックが機能しません
ID情報: teketen
投稿者: てけてん

> 「半角円マーク」とおっしゃってる文字が、半角のバックスラッシュ「\」に見えています。これは全部、半角の「¥」なのでしょうか?

そうです。
半角の¥は、バックスラッシュのことなので、半角の「\」で大丈夫です。
Windowsだと、半角の¥で表示されてしまうんです。
半角の¥だけで、円マークと補足に書かなければ、混乱を招かなくて良かったのに、すみませんでした。


記事No: 13744
投稿日: 2015/02/10(Tue) 18:20:22
タイトルできました!!!!ありがとうございます!!
ID情報: chebu_3
投稿者: chebu_3
URLhttp://cogimon-ya.namaste.jp/joyful/joyful.cgi

てけてん様

何度も本当にありがとうございます。できました!!!!狂喜しております!!

一番最初にhirayama様に教えて頂いたスクリプトで、私の環境では半角のバックスラッシュ「\」に見えている文字を、全部半角の「¥」に置き換えたところ、無事に英文スパムが拒否になりました!

テストで作った最新版の掲示板で動作を確認後、現在使用中のv3.7の掲示板のregist.cgiを同様に修正しましたが、こちらの旧バージョンの掲示板でも問題なく動作してくれました。

文字コードのことは正直よくわからないのですが、まさかブラウザでもエディタでも「\」に見えるものが、「¥」が正解(?)なんだとは思いもしませんでした。

おかげさまで、現在の旧バージョンの掲示板のままで、機能を希望どおりに修正することができました。hirayama様、てけてん様、本当に何度もありがとうございました!

(「合言葉」の改造方法も、いつか必要になるかもしれないので保存させて頂きました^^ ありがとうございました)


[検索ページ] [掲示板]