PyukiWikiのBugTrackで荒らし対策にパスワードをかける

PyukiWikiのBugTrackでパスワードをかける

前回,PyukiWikiでBugTrackで,PyukiWiki 0.1.5上でBugTrackが動くようになった.

それでしばらく運用していたが,海外かどっかからの荒らし投稿が目立つようになった.

大量のURLを含んだ意味不明な記事を,BugTrackに投稿してゆくのである.

そこで,管理者パスワードを知っている人しか投稿できないように改造した.

ちなみに結果はこれ.
RensaWiki BugTrack


bugtrack.inc.pl

以下の2個の関数を編集した.

  • sub plugin_bugtrack_action: 変更
  • sub plugin_bugtrack_print_form: 変更

plugin_bugtrack_action

sub plugin_bugtrack_action
{
    if ($::form{mode} eq 'submit') {
        # パスワードをチェックするようにした 2006.08.12
        if (crypt($::form{admin_pass}, "AA") eq $::adminpass) {
            &plugin_bugtrack_write($::form{base}, $::form{pagename}, $::form{summary}, $::form{name}, $::form{priority}, $::form{state}, $::form{category}, $::form{version}, $::form{body});
            exit;
        } else {
            # パスワードが正しくない場合は,トップページに戻る
            return ('msg'=>'', 'body'=>'');
        }
    }
    return ('msg'=>$bugtrack::title, 'body'=>&plugin_bugtrack_print_form($::form{category}));
}

plugin_bugtrack_print_form

sub plugin_bugtrack_print_form
{
 ・・・
  <tr>
   <th>$bugtrack::body</th>
   <td><textarea name="body" cols="60" rows="6"></textarea></td>
  </tr>
  <tr>
   <th>$bugtrack::admin_pass</th>
   <td><input name="admin_pass" size="10" type="text" /></td>
  </tr>
  <tr>
   <td colspan="2" align="center">
 ・・・
}


これで,荒らし投稿はぴたりと止んだ.(当たり前だが)

一般から投稿を受け付けているようなサイトでは,こんな対応は無理だが, うちのように作者だけが登録するようなサイトだと,これで完璧だ.

めでたし

kamolandをフォローしましょう


© 2017 KMIソフトウェア