「ロリポップ助け合い掲示板」の提供終了に伴い
2014/10/01、当サイトもリニューアルの予定です

スパムユーザー登録について

CGI関連 php,Ruby編

スパムユーザー登録について

投稿記事by wickerman » 土 2 04, 2006 11:19 pm

masterさん、初めまして。登録させていただきました。
ロリポでPHP BB2を使用しているのですが、最近海外(アメリカ)からのウェブサイトへ誘導するためのスパム登録が後を絶ちません。
基本設定で、管理者でアクティベートするようにはしているのですが、きりがないので疲れてきました(苦笑)。
(アクティブにならなくても、削除の作業は発生するので…。)

そこで、登録時に2バイト文字などを入力しないと登録できないようなスタイルにできないかなあ、なんて思ってるんですが、そのようなことが可能な登録テンプレートなんかはご存じないでしょうか。

よろしくお願いします。
wickerman
 
記事: 8
登録日時: 土 2 04, 2006 11:11 pm

投稿記事by master » 日 2 05, 2006 12:36 am

私も悩んでます(苦笑)。アクセス制限も緩めにかけてはいるんですが、こちらは限界がありますからね。

「includes/usercp_register.php」の265行目あたりから(バージョンで若干ちがうかも)に登録時の必須項目チェックがあります。

[code:1:17f79d4efd] if ( empty($username) || empty($new_password) || empty($password_confirm) || empty($email) )
  {
  $error = TRUE;
  $error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Fields_empty'];
  }[/code:1:17f79d4efd]このifにor条件で繋いでいる中にエラーにしたい条件を追加すれば「必須項目をすべて入力してください」というエラーにできます。

[size=9:17f79d4efd]ウチはメールアドレスに特定の文字列があるとアウトにしてます。エラーメッセージ(日本語用)を編集して「または・・」を追加しておくといいかもしれませが、どうせ日本語のエラーメッセージは読めないだろうからと放置してます(おい)。[/size:17f79d4efd]
forum master
アバター
master
Forum Admin
 
記事: 217
登録日時: 金 1 21, 2005 5:16 pm
お住まい: 大分県大分市

投稿記事by wickerman » 日 2 05, 2006 1:34 pm

masterさん、早速ありがとうございます。

そーすると、事前に変数(?)の宣言とか要りますよね?
具体的にいいますと、こんな感じにしたいのです。

【ユーザー新規登録】画面内で

○○ポップ ←全角カタカナをいれてください

みたいにして、「ロリ」と入力できた人だけ登録されるような感じにしたいのです。
つまり、登録項目を一個増やしたいのですね。
wickerman
 
記事: 8
登録日時: 土 2 04, 2006 11:11 pm

投稿記事by master » 月 2 06, 2006 1:10 am

テンプレートを改造してPOST項目に追加できれば、チェックする方は$_POST[]でもいいとは思います。

ざくっと眺めて見ましたが、修正対象は前述の「includes/usercp_register.php」で使っている「templates/subSilver/profile_add_body.tpl」ですね。テンプレートを触るのはちょっと難儀です。どの部分がどう置換されるかはusercp_register.phpと見比べながら(「language/lang_japanese/lang_main.php」も参照しながら)ということになります。
forum master
アバター
master
Forum Admin
 
記事: 217
登録日時: 金 1 21, 2005 5:16 pm
お住まい: 大分県大分市

投稿記事by master » 月 2 06, 2006 3:50 pm

無理矢理やってみました(苦笑)

前回も書いた「includes/usercp_register.php」は[code:1:f69716ecee]
else if ( $mode == 'register' )
{
if ( empty($username) || empty($new_password) || empty($password_confirm) || empty($email) || ($_POST[lolipop] <> 'ロリポップ'))
{
$error = TRUE;
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Fields_empty'];
}
[/code:1:f69716ecee]として、「templates/subSilver/profile_add_body.tpl」の30縲鰀58行目あたりの適当な位置に[code:1:f69716ecee]
<tr>
<td class="row1" width="38%"><span class="gen">合言葉: *</span></td>
<td class="row2"><input type="text" class="post" style="width:200px" name="lolipop" size="25" maxlength="25" value="" /><span class="gen">←<font color="red">ロリポップ</font>と入力してください</span></td>
</tr>
[/code:1:f69716ecee]と入れてみました(ウチは<!-- Visual Confirmation -->の前にいれました)。このままだと赤字部分をコピペされそうなので、wickermanさんのように○○の伏字部分を入力してもらうと完璧でしょうね。

チェックは(多分)新規登録のときしか通らないハズですが、表示もカットするには、どのBEGIN、ENDが対応するのか調べないといけませんね。とりあえず「新規登録時は・・」とか説明を入れておけばいいでしょう。
forum master
アバター
master
Forum Admin
 
記事: 217
登録日時: 金 1 21, 2005 5:16 pm
お住まい: 大分県大分市

ありがとうございます!

投稿記事by wickerman » 火 2 07, 2006 8:55 pm

masterさん、詳細なアドバイスありがとうございます!
近いうちに時間作ってやってみます。また結果を報告しますね。

最近、1日1ユーザーを手で削除してます。(苦笑)
wickerman
 
記事: 8
登録日時: 土 2 04, 2006 11:11 pm

やってみたんですが…

投稿記事by wickerman » 木 2 09, 2006 11:20 pm

ご支持どおりやってみたのですが、「送信」ボタンを押すと「必須項目をすべて入力してください」のエラーになってしまいます。
masterさんのはうまく動作しましたか?

秀丸で編集したのですが、登録画面になると文字化けしてしまったので、ここらへんがなにか悪さしているのでしょうか :?:
wickerman
 
記事: 8
登録日時: 土 2 04, 2006 11:11 pm

投稿記事by master » 木 2 09, 2006 11:40 pm

編集して「日本語」を書き込んだときは、使っている文字コードに合わせてください。でないとフォームが文字化けしますし、受け取ったときのチェックで「不一致」になってしまいます。

ウチは「usercp_register.php」も「profile_add_body.tpl」もEUC-JPにしてます。とりあえずはちゃんと登録できました。
forum master
アバター
master
Forum Admin
 
記事: 217
登録日時: 金 1 21, 2005 5:16 pm
お住まい: 大分県大分市

いけそうです!

投稿記事by wickerman » 木 2 09, 2006 11:44 pm

早々のお返事ありがとうございます :D
秀丸の理解が浅くて、文字コードの変換が分からなかったのですが解決しました。
うまくいけそうです!
wickerman
 
記事: 8
登録日時: 土 2 04, 2006 11:11 pm

スパムユーザー登録について

投稿記事by meme » 金 4 14, 2006 3:28 pm

はじめまして。

スパムユーザー登録についてお伺いしたいので、こちらに返信させていただきます。
私も、毎日海外からのスパム登録を3件くらい削除しています。

スパム登録に対して、アクティベートしていないメンバーを一切表示させないようにできるそうで、それですと効果的なのではと思い、インストールしたいのですが、手順が分からず困っています。

↓このMODをインストールするというところまでわかったのですが、
Active members Only

MODのインストールは全くしたことがありません。どのようにしたらいいのでしょうか。
よろしくお願いします。
meme
 

次へ

Return to CGI - php,Ruby

オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[1人]

cron