検索語取得、検索語マーカー、スパム投稿フィルターの preload
投稿者: nao-pon | 投稿日時: 2007/1/25 20:10 | 閲覧: 37435回
アクセス元の検索ワード&エンジン名取得や、検索語のハイライト表示機能、スパム投稿フィルターを組み込む XOOPS Cube 用の Preload Class を書いてみました。
HypCommonPreLoad-Wiki [自由帳]-XOOPSマニア
global変数使ったりして、いまいち cool じゃないけど、とりあえず習作ということで。
common.php ハックで XOOPS 2 にも対応できます。
ツッコミ大歓迎!よろしくお願いします。
HypCommonPreLoad-Wiki [自由帳]-XOOPSマニア
global変数使ったりして、いまいち cool じゃないけど、とりあえず習作ということで。

common.php ハックで XOOPS 2 にも対応できます。
ツッコミ大歓迎!よろしくお願いします。

コメント(14)
新しいものから |
古いものから |
ネスト表示 |

Re: 検索語取得、検索語マーカー、スパム投稿フィルターの preload
Re: 検索語取得、検索語マーカー、スパム投稿フィルターの preload
投稿者: nao-pon | 投稿日時: 2007/1/26 22:16
photosite さん、こんにちは。
試していただきありがとうございます。
引用:
ドキュメントが無くてすみません。
基本的には、ポイント加算方式で、ゲスト、ログインユーザーで閾値を設定してそれを超えたらアウト。というようになっています。
デフォルトでは、タグ1個=1pt, BBコードリンク1個=1pt, URL1個=1pt, 一行に同一URLが3個=11pt, 50文字以上の英数字のみで構成されている=15pt, スパムサイトリストにマッチするURL=30pt となっていて、閾値は、ゲスト15pt, ログインユーザー30pt です。
サイトによっては誤判定もありえるので、不都合があれば適宜調整してみてください。
ゲストに投稿を許可しているサイトでは、かなり有効に働いてくれると思います。
私のサイトは基本的にゲストに投稿制限を設けていないので、このフィルターがないと、とんでもないことになってしまいます。
色々とご意見などお待ちしております。 >ALL
今後ともよろしくお願いします。
試していただきありがとうございます。
引用:
設定の方法がいまいち理解できなくて、とりあえず KAKASI のパスだけ変えて使わさせていただいておりますが、デフォルトのままでも威力十分ですね。
ドキュメントが無くてすみません。
基本的には、ポイント加算方式で、ゲスト、ログインユーザーで閾値を設定してそれを超えたらアウト。というようになっています。
デフォルトでは、タグ1個=1pt, BBコードリンク1個=1pt, URL1個=1pt, 一行に同一URLが3個=11pt, 50文字以上の英数字のみで構成されている=15pt, スパムサイトリストにマッチするURL=30pt となっていて、閾値は、ゲスト15pt, ログインユーザー30pt です。
サイトによっては誤判定もありえるので、不都合があれば適宜調整してみてください。
ゲストに投稿を許可しているサイトでは、かなり有効に働いてくれると思います。
私のサイトは基本的にゲストに投稿制限を設けていないので、このフィルターがないと、とんでもないことになってしまいます。

色々とご意見などお待ちしております。 >ALL
今後ともよろしくお願いします。

Re: 検索語取得、検索語マーカー、スパム投稿フィルターの preload
投稿者: photosite | 投稿日時: 2007/1/27 14:29
nao-ponさん、わざわざご説明ありがとうございました。
hyp_preload.phpの内容を見て、ある程度は想像できていたのですが、やはりポイント加算方式なんですね、、、
いやぁ、これはいいですね。画像認証や全角を含まない投稿拒否などの方法だと、利用者側にとって使いにくいサイトになってしまいますが、この方法だとそんな心配はいらないですし。。。spamsites.datにスパムサイトを追記していけば、簡単にブラック・リストを作れそうですね。
私のサイトも、誰でもコメントを投稿でき、フォーラムも一部ゲストが自由に投稿できるようにしていますが、あまりにコメントスパムが多いため、運営方法を見直そうかと思っていたところでした。nao-ponさんのおかげで、その必要は無くなりました。ありがとうございます
hyp_preload.phpの内容を見て、ある程度は想像できていたのですが、やはりポイント加算方式なんですね、、、
いやぁ、これはいいですね。画像認証や全角を含まない投稿拒否などの方法だと、利用者側にとって使いにくいサイトになってしまいますが、この方法だとそんな心配はいらないですし。。。spamsites.datにスパムサイトを追記していけば、簡単にブラック・リストを作れそうですね。
私のサイトも、誰でもコメントを投稿でき、フォーラムも一部ゲストが自由に投稿できるようにしていますが、あまりにコメントスパムが多いため、運営方法を見直そうかと思っていたところでした。nao-ponさんのおかげで、その必要は無くなりました。ありがとうございます

Re: 検索語取得、検索語マーカー、スパム投稿フィルターの preload
投稿者: nobunobu | 投稿日時: 2007/1/27 20:18
nobunobuです。
実は、XOOPS Cube2.1のpreloadサンプルとして、SPAM対応を用意しなくてはいけないな・・・・
と考えていたのですけど、nao-ponさん Good JOB!です。
引用:
基本的にはゲストユーザでHTML投稿可能っていうのは
あまり想定できないので、ゲスト向けにはもう少しポイント高くしても良いかもしれませんね。
引用:
でかなり排除できると思いますが・・・
ちなみに純正PukiWikiの最近のSPAM対策では#COMMENTなどの
プラグイン経由投稿でのタグ使用は即シャットアウトです。
PukiWikiの様な使用エリアの判定は、XOOPSではモジュールの
引用:
これは、日本語環境のサイトではかなり有効な対策で、ブログソフトでも日本語圏向けに同様のSPAM対策プラグインがかなり出回っていますね。
ただし、小生が準備すると、日本語圏以外も対称としないといけないので、使えなくなってしまいますね・・・
あと、KAKASIも日本語専用ツールですから・・・
ってことで、小生のほうは、最近のMTが使用している、RBL等の外部BlackListによる、
投稿元IPアドレスや、投稿コンテンツ内URLを元にした判定を付け加えたものを用意したいと考えています(いつの事やら・・)
実は、XOOPS Cube2.1のpreloadサンプルとして、SPAM対応を用意しなくてはいけないな・・・・
と考えていたのですけど、nao-ponさん Good JOB!です。
引用:
基本的にはゲストユーザでHTML投稿可能っていうのは
あまり想定できないので、ゲスト向けにはもう少しポイント高くしても良いかもしれませんね。
引用:
一行に同一URLが3個=11pt
でかなり排除できると思いますが・・・
ちなみに純正PukiWikiの最近のSPAM対策では#COMMENTなどの
プラグイン経由投稿でのタグ使用は即シャットアウトです。
PukiWikiの様な使用エリアの判定は、XOOPSではモジュールの
引用:
50文字以上の英数字のみ・・・
これは、日本語環境のサイトではかなり有効な対策で、ブログソフトでも日本語圏向けに同様のSPAM対策プラグインがかなり出回っていますね。
ただし、小生が準備すると、日本語圏以外も対称としないといけないので、使えなくなってしまいますね・・・
あと、KAKASIも日本語専用ツールですから・・・
ってことで、小生のほうは、最近のMTが使用している、RBL等の外部BlackListによる、
投稿元IPアドレスや、投稿コンテンツ内URLを元にした判定を付け加えたものを用意したいと考えています(いつの事やら・・)
Re: 検索語取得、検索語マーカー、スパム投稿フィルターの preload
投稿者: Guest | 投稿日時: 2007/1/28 22:29
私もスパム投稿などには頭を悩ませていまして、早速組み込んでみました。が
Warning [PHP]: Missing argument 1 for hypcommonpreload() in file /xxxx/xxxx/xxxx/class/hyp_common/preload/hyp_preload.php line 45
というエラーがPHPデバグで表示されます。
組み込んだclassが機能しているのか定かでないのですが、これはどういうものなのでしょうか。ご教示いただけるとありがたいです。
XOOPSは2.0.16aJP、PHPは4.3.10です。宜しくお願い致します。
Warning [PHP]: Missing argument 1 for hypcommonpreload() in file /xxxx/xxxx/xxxx/class/hyp_common/preload/hyp_preload.php line 45
というエラーがPHPデバグで表示されます。
組み込んだclassが機能しているのか定かでないのですが、これはどういうものなのでしょうか。ご教示いただけるとありがたいです。
XOOPSは2.0.16aJP、PHPは4.3.10です。宜しくお願い致します。
Re: 検索語取得、検索語マーカー、スパム投稿フィルターの preload
Re: 検索語取得、検索語マーカー、スパム投稿フィルターの preload
投稿者: nao-pon | 投稿日時: 2007/1/28 23:43
まとめレスですみません。
のぶのぶさん、お久しぶりです。
そう、言うのを忘れてましたが、日本語環境で使っていただくことを前提にしています。
ただ、KAKASIがインストールされていなくても一応動くようにはなってると思います。(「思います」って
)
サイトの性質により、いろいろいじってもらえばいいとは思いますが、いづれにしても設定ファイルを別ファイルにするとかの仕組みが必要ですね。
外部Blacklistについては、BBQを使っていますのでDSBLは含まれていると思います。
wessler さん、こんにちは。
引用:
Cube 用のクラスを手抜きして再利用しているので、その弊害です。実動作上は、問題ないと思いますが気になるようでしたら、 common.php の
を
としてください。(エラー表示を抑制しているだけですが。)
動作確認は、photosite さんが示していただいた方法でOKだと思います。
のぶのぶさん、お久しぶりです。

そう、言うのを忘れてましたが、日本語環境で使っていただくことを前提にしています。
ただ、KAKASIがインストールされていなくても一応動くようにはなってると思います。(「思います」って

サイトの性質により、いろいろいじってもらえばいいとは思いますが、いづれにしても設定ファイルを別ファイルにするとかの仕組みが必要ですね。
外部Blacklistについては、BBQを使っていますのでDSBLは含まれていると思います。
wessler さん、こんにちは。
引用:
Warning [PHP]: Missing argument 1 for hypcommonpreload() in file /xxxx/xxxx/xxxx/class/hyp_common/preload/hyp_preload.php line 45
というエラーがPHPデバグで表示されます。
Cube 用のクラスを手抜きして再利用しているので、その弊害です。実動作上は、問題ないと思いますが気になるようでしたら、 common.php の
$HypCommonPreLoad = new HypCommonPreLoad();
を
$HypCommonPreLoad = @ new HypCommonPreLoad();
としてください。(エラー表示を抑制しているだけですが。)
動作確認は、photosite さんが示していただいた方法でOKだと思います。

Re: 検索語取得、検索語マーカー、スパム投稿フィルターの preload
Re: 検索語取得、検索語マーカー、スパム投稿フィルターの preload
投稿者: ken234 | 投稿日時: 2007/2/11 18:55
私もスパム投稿に悩んでおりまして早速導入させていただきました。
検索語のハイライト表示機能が動作しているようですので正常に組めこめたかなと思います。
デフォルトでは、50文字以上の英数字のみで構成されている=15pt、閾値は、ゲスト15ptとの設定になっていましたが、ゲストでの英文字のみ投稿は即アウトにしたかったので、ゲストの閾値を14ptとしました。
そうしますと、指定文字数以上での即アウトはできているようですが、ユーザログインしようとログインボタンを押すと真っ白なページが表示されるようです。
閾値を下げてしまうとまずいのでしょうか?
検索語のハイライト表示機能が動作しているようですので正常に組めこめたかなと思います。
デフォルトでは、50文字以上の英数字のみで構成されている=15pt、閾値は、ゲスト15ptとの設定になっていましたが、ゲストでの英文字のみ投稿は即アウトにしたかったので、ゲストの閾値を14ptとしました。
そうしますと、指定文字数以上での即アウトはできているようですが、ユーザログインしようとログインボタンを押すと真っ白なページが表示されるようです。
閾値を下げてしまうとまずいのでしょうか?
Re: 検索語取得、検索語マーカー、スパム投稿フィルターの preload
投稿者: nao-pon | 投稿日時: 2007/2/12 15:49
ログインできないという状態は、さすがにまずいですよね。
原因が何かは分からないのですが、とりあえずHypCommonFuncを最新版にしてください。
英語のみの投稿を許可したくないのでしたら、英文のみの時に与えられるポイントを増やしてみたら如何でしょうか。
hyp_preload.php の
を
にしてみてください。
余談ですが、アップデートするたびにオプションを書き換えなくても済むようにオプションの設定を別ファイルにすることを考えています。
その作業の完了時にまた、お知らせします。
原因が何かは分からないのですが、とりあえずHypCommonFuncを最新版にしてください。
英語のみの投稿を許可したくないのでしたら、英文のみの時に与えられるポイントを増やしてみたら如何でしょうか。
hyp_preload.php の
// 100文字以上の英数文字のみで構成されている 15pt
'/^[\x00-\x7f\s]{100,}$/' => 15,
を
// 100文字以上の英数文字のみで構成されている 15pt
'/^[\x00-\x7f\s]{100,}$/' => 16,
にしてみてください。
余談ですが、アップデートするたびにオプションを書き換えなくても済むようにオプションの設定を別ファイルにすることを考えています。
その作業の完了時にまた、お知らせします。
Re: 検索語取得、検索語マーカー、スパム投稿フィルターの preload
投稿者: ken234 | 投稿日時: 2007/2/14 7:03
nao-ponさま
ご丁寧なご返信ありがとうございます。
引用:
上記のように設定してみましたが、やはり状況は変わりませんでした。また、最新版にもしてみましたがやはり同じようです。
しかし、デフォルトの設定でも十分海外からのほとんどのスパム投稿をはじいてくれちゃっているみたいですので、デフォルトのまま動作されたいと思います^^;
一日数件の英字のみのスパムは通ってきちゃいますが手動で削除できる件数ですのでかなり助かりました。
すばらしいプログラムを作成していただき感謝致します。
ご丁寧なご返信ありがとうございます。
引用:
// 100文字以上の英数文字のみで構成されている 15pt
'/^[\x00-\x7f\s]{100,}$/' => 16,
上記のように設定してみましたが、やはり状況は変わりませんでした。また、最新版にもしてみましたがやはり同じようです。
しかし、デフォルトの設定でも十分海外からのほとんどのスパム投稿をはじいてくれちゃっているみたいですので、デフォルトのまま動作されたいと思います^^;
一日数件の英字のみのスパムは通ってきちゃいますが手動で削除できる件数ですのでかなり助かりました。
すばらしいプログラムを作成していただき感謝致します。
Re: 検索語取得、検索語マーカー、スパム投稿フィルターの preload
投稿者: nao-pon | 投稿日時: 2007/2/14 15:15
引用:
ん〜原因がよく分からないですね。
また、気付いたことがあればお知らせください。
----------------------
アップデートのお知らせ
設定部分を別ファイルにして、アップデート時に上書きされないようにしてみました。
- HypCommonFunc を最新版にしてください。
- CVS更新履歴はこちら
- 設定方法はこちら
また、スパムサイトのデーターは随時更新しています。
- spamsites.dat
お試しください。
上記のように設定してみましたが、やはり状況は変わりませんでした。また、最新版にもしてみましたがやはり同じようです。
ん〜原因がよく分からないですね。
また、気付いたことがあればお知らせください。
----------------------
アップデートのお知らせ
設定部分を別ファイルにして、アップデート時に上書きされないようにしてみました。
- HypCommonFunc を最新版にしてください。
- CVS更新履歴はこちら
- 設定方法はこちら
また、スパムサイトのデーターは随時更新しています。
- spamsites.dat
お試しください。

Re: 検索語取得、検索語マーカー、スパム投稿フィルターの preload
投稿者: photosite | 投稿日時: 2007/2/14 18:33
nao-pon さん、アップデートご苦労様です。さっそく、最新版をいただきました 
ところで、特定条件によっては、ログイン時にまっちろけになるという現象は、私の環境でも再現できました。
その条件とは、デバクモードを有効にしている状態で、myalbum-Pのページを開いているときに、ログインした場合です。
デバクモードを有効にしていない場合には、myalbum-Pのページからもログインは可能です。
myalbum-P以外のモジュールでは、まだあまり動作検証はしていなくて、申し訳ありませんが、とりあえずご報告まで。

ところで、特定条件によっては、ログイン時にまっちろけになるという現象は、私の環境でも再現できました。
その条件とは、デバクモードを有効にしている状態で、myalbum-Pのページを開いているときに、ログインした場合です。
デバクモードを有効にしていない場合には、myalbum-Pのページからもログインは可能です。
myalbum-P以外のモジュールでは、まだあまり動作検証はしていなくて、申し訳ありませんが、とりあえずご報告まで。
Re: 検索語取得、検索語マーカー、スパム投稿フィルターの preload
投稿者: photosite | 投稿日時: 2007/2/14 18:57
なんどもすみません。追加の報告です。
ログイン後に真っ白けになった場合、私の環境では、URLがhttp://xxxxxxxxxx.com/session_confirm.php となっておりました。
私の環境では、GIJOEさんのオートログインハックを利用しておりますので、myalbum-Pというよりオートログインハックとの相性かもしれません。
ログイン後に真っ白けになった場合、私の環境では、URLがhttp://xxxxxxxxxx.com/session_confirm.php となっておりました。
私の環境では、GIJOEさんのオートログインハックを利用しておりますので、myalbum-Pというよりオートログインハックとの相性かもしれません。