DokuWiki

It's better when it's simple

ユーザ用ツール

サイト用ツール


ja:blacklist

ブラックリスト

インターネットは以前のように安全な場所ではありません。 古き良きものは崩れ去り、それは Wiki でも同様です。 電子メールやブログのスパムのような WikiSpam が増えています。 DokuWiki をイントラネットで使用している場合は全く問題ありません。 しかし、インターネット上で使用する場合、既知のスパムの単語をブラックリストに載せることができます。

DokuWiki 内でのブラックリストの使用方法:

  • 設定管理で設定項目: usewordblock オプションを有効にする(デフォルトで有効)
  • conf/wordblock.local.conf を編集する。既存のブロック単語一覧は conf/wordblock.conf ファイルにあります。このファイルには Perl 互換の正規表現が含まれており、保存される内容が一致した場合、ページの保存を拒否します。特定の文章がスパムとして拒否された理由を理解するには、文章を解析する whyspam plugin を使用します。

IP アドレス単位での拒否には、Apache の Deny ディレクティブIPアドレス禁止プラグインを利用します。

ブラックリスト情報源

日々のクローンジョブによって、公開された情報源からブラックリストを更新することをお薦めします。 以下は、使用可能な情報源一覧です。

Wikipedia

Wikipedia には 同様のブラックリストを維持管理している素晴らしい人がいます。 次のコマンドで、この情報源から自分のブラックリストを更新できます:

$> curl http://meta.wikimedia.org/wiki/Spam_blacklist?action=raw |grep -v '<pre>' > conf/wordblock.local.conf

ブロックした攻撃の記録

DokuWiki の inc/common.php ファイルを少し変更すると、ブロックした攻撃を /data/meta/wordblock.log ファイルに記録できます。 このログファイルを利用してブラックリストをデバッグできます。

変更前:

function checkwordblock($text=''){
[...]
   if(count($re) && preg_match('#('.join('|',$re).')#si',$text,$matches)) {
      // prepare event data
      $data['matches'] = $matches;
      $data['userinfo']['ip'] = $_SERVER['REMOTE_ADDR'];
[...]

変更後:

function checkwordblock($text=''){
[...]
    if(count($re) && preg_match('#('.join('|',$re).')#si',$text,$matches)) {
       // prepare event data       
       io_saveFile($conf['metadir'].'/wordblock.log', strftime($conf['dformat'])."\t".$matches[0]."\t".$ID.$_SERVER['REMOTE_USER']."\t".$_SERVER['REMOTE_ADDR'].":".$_SERVER['SERVER_PORT']."\t".gethostbyaddr($_SERVER['REMOTE_ADDR'])."\t".$_SERVER['HTTP_USER_AGENT']."\n", true);
 
      $data['matches'] = $matches;
      $data['userinfo']['ip'] = $_SERVER['REMOTE_ADDR'];
[...]

関連項目

ja/blacklist.txt · 最終更新: 2014-08-24 10:10 by sawachan

特に明示されていない限り、本Wikiの内容は次のライセンスに従います: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki