phpBBフォーラムを自動登録から保護する方法

phpBBフォーラムエンジンには多くの利点があり、ユーザーやモデレーターにとって便利であり、結果として非常に人気があります。 しかし、その主な欠点を引き起こすのは人気です-それはスパムされ、さらに、自動的にスパムされます。 しばらくして、新しい偽のユーザーの登録とそれらからのスパムメッセージの絶え間ない流れは、何らかの方法でサイト管理の神経を破壊する可能性があります。



PhpBBバージョン3。*基本配信には、フォーラムに登録するときにユーザーに提供できるcaptchaの4つのバリエーションが含まれています。 recaptchaもありますが、自動送信機にとっては、実践が示すように、これは邪魔ではありません。



これらのプログラムは、さまざまなフォーラムエンジンの登録ページへの典型的なエントリポイントがどのようなものかを知っています。 この知識は、新しいユーザーの登録、メッセージの投稿などのためのフォームを含むWebページのDOMモデルの認識に基づいています。 つまり、たとえば、phpBBの場合、ロボットは登録のエントリポイントが/ucp.php?mode=registerにあり、このページに次のようなボタンがあることを認識しています。







<input type="submit" class="button1" value="..." id="agreed" name="agreed">
      
      







技術的な詳細に進むことなく、少なくともidまたは名前でhtml文書内でこのボタンを見つけてクリックできることに注意してください。



ロボットは、キャプチャページに到達するとすぐに、キャプチャ画像を受け取り、認識しようとします。 OCRアルゴリズムから生きている人による単純なキャプチャの認識まで、プログラムの高度さに応じて、さまざまな技術をここで適用できます。 それが保護が機能しない理由です。 ロボットは多数のプロキシサーバーを介してスパムを送信するため、フォーラムでのIPアドレスの禁止もまったく役に立ちません。 この意味で、アドレスの禁止や新しい自動登録のクリーニングに違いはありません;何らかの方法で時間の無駄になります。



自動送信者を遮断する唯一の方法は、フォーラムへのエントリポイントのマークアップを独自の方法でわずかに変更することであることがわかります。 もう2、3年前にphpBB2でこのようなトリックをしましたが、うまくいきました-自動登録が停止しました。 同じことは、phpBB3エンジン上で既に別のサイトで最近確認されました。



次に、phpBB登録ページを変更する具体的な検証例を示します。 ただし、この投稿では、特定の方法ではなく、フォーラムでの自動登録に対する保護の概念を提供することを予約したいと思います。 それはすべて、フォーラム管理者の手と頭に依存します。 htmlとcssの基本的な知識を持っていることをお勧めします。 読者がこの方法を大量にコピーし始めると、スパマーはソフトウェアでこの「ヒューリスティック」をプログラムし、自動登録が続行されます。



そのため、phpBBフォーラムの設定で最も単純なキャプチャ「GDのないCAPTHA」を選択します。

ブラウザ(FF3)では次のようになります。







キャプチャ画像の領域で登録ページのレイアウトを見ると、次のようになります。



 <dt><label for="confirm_code"> :</label></dt> <dd><img src="./ucp.php?mode=confirm&confirm_id=6c5577092e91ccaeb04032537f70ab65&type=1" alt=" " /></dd>
      
      







実際、src属性はimgタグ内にあり、キャプチャ画像が含まれています。 現在のトピックがフォーラムにインストールされているフォルダーを開きます。 私の場合、これはprosilverです:/ forum / styles / prosilver / template。 その中にcaptcha_default.htmlファイルがあります。 このテンプレートを見ると、前述のマークアップが形成されている場所を確認できます。



 <dt><label for="confirm_code">{L_CONFIRM_CODE}:</label></dt> <dd><img src="{CONFIRM_IMAGE_LINK}" alt="{L_CONFIRM_CODE}" /></dd> <dd><input type="text" name="confirm_code" id="confirm_code" size="8" maxlength="8" tabindex="{$CAPTCHA_TAB_INDEX}" class="inputbox narrow" title="{L_CONFIRM_CODE}" />
      
      







軽いジェスチャーで、自動送信機の生活を複雑にします。



 <dt><label for="confirm_code"> :</label></dt> <dd><iframe src="./ucp.php?mode=confirm&confirm_id=6c5577092e91ccaeb04032537f70ab65&type=1"></iframe></dd>
      
      







ブラウザでは次のようになります。







あまり美しくありませんが、管理者の神経は整然としています。 通常のユーザーは引き続き登録できます。 もちろん、エンジンを新しいバージョンにアップグレードするときは、この修正を再度行うことを忘れないでください。 勇敢なphpbbユーザーがこの例にとらわれず、提案された保護コンセプトに従ってエントリポイントを変更する他の方法を思いつくことを願っています。



All Articles