Confluence 5.2 のサポートは終了しています。
ドキュメントの最新バージョンを確認してください。
If you have a public-facing Confluence site, your site may be affected by spammers.
スパムを停止する
スパムを防止する方法:
- Enable Captcha. See Configuring Captcha for Spam Prevention.
- Run Confluence behind an Apache webserver and create rules to block the spammer's IP address.
Apache またはシステム レベルでのスパムのブロック
If a spam bot is attacking your Confluence site, they are probably coming from one IP address or a small range of IP addresses. To find the attacker's IP address, follow the Apache access logs in real time and filter for a page that they are attacking.
たとえば、攻撃者がユーザーを作成している場合、signup.action
を検索します。
$ tail -f confluence.atlassian.com.log | grep signup.action 1.2.3.4 - - [13/Jan/2010:00:14:51 -0600] "GET /signup.action HTTP/1.1" 200 9956 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" 37750
作成された実際のスパム ユーザーをログ エントリで比較し、正当なユーザーをブロックしないように注意してください。デフォルトでは、Apache はログの行の最初のフィールドにクライアントの IP アドレスを記録します。
Once you have the offender's IP address or IP range, you can add it to your firewall's blacklist. For example, using the popular Shorewall firewall for Linux you can simply do this:
# echo "1.2.3.4" >> /etc/shorewall/blacklist # /etc/init.d/shorewall reload
IP アドレスを Apache レベルでブロックするには、Apache の vhost 設定に以下の行を追加します。
Deny from 1.2.3.4
クライアント セッションを切断すること無く変更を適用する "graceful" コマンドで Apache を再起動することができます。
If this still does not stop the spam, then consider turning off public signup.
スパムの削除
プロフィール スパム
「プロフィール スパム」とは、Confluence でアカウントを作成し、プロフェール ページにリンクを投稿するスパムのことです。
If you have had many such spam profiles created, it is easier to delete them via SQL, as described below.
スパム プロフィールを削除する方法:
- Shut down Confluence and back up your database. Note: This step is essential before you run any SQL commands on your Confluence dattabase.
スパムではない最後のプロフィールを見つけます。
SELECT bodycontentid,body FROM bodycontent WHERE contentid IN (SELECT contentid FROM content WHERE contenttype='USERINFO') ORDER BY bodycontentid DESC;
- スパムが見つかり始めるまで、プロフィール ページの本文に目を通します。大量の範囲を特定する必要がある場合があります。
killset を検索します。
CREATE TEMP TABLE killset AS SELECT bc.bodycontentid,c.contentid,c.username FROM bodycontent bc JOIN content c ON bc.contentid=c.contentid WHERE bodycontentid >= BOTTOM_OF_SPAM_RANGE AND bodycontentID <= TOP_OF_SPAM_RANGE AND c.contenttype='USERINFO'; DELETE FROM bodycontent WHERE bodycontentid IN (SELECT bodycontentid FROM killset); DELETE FROM links WHERE contentid IN (SELECT contentid FROM killset); DELETE FROM content WHERE prevver IN (SELECT contentid FROM killset); DELETE FROM attachments WHERE pageid IN (SELECT contentid FROM killset); DELETE FROM content WHERE contentid IN (SELECT contentid FROM killset); DELETE FROM os_user_group WHERE user_id IN (SELECT id FROM killset k JOIN os_user o ON o.username=k.username); DELETE FROM os_user WHERE username IN (SELECT username FROM killset);
- Once the spam has been deleted, restart Confluence and rebuild the index. This will remove any references to the spam from the search index.
注意
- See CONF-1469. Your comments that issue are very much appreciated.