| サマリ | スパム対策について |
|---|
| バージョン | 1.4.7plus-u2-i18n |
|---|
| 投稿者 | KATSUO? |
|---|
| 状態 | 完了 |
|---|
| 投稿日 | |
|---|
質問
新規投稿スパムに悩まされています。
新規投稿スパムとは
たとえば、同じwiki内に「Outlook Mobile」というページがあると「outlook mobile」という新規ページを作成し、下記のような英語のみ+URLリンクを新規ページで投稿するというものです。
<a href=" http://xxxxx.xxx.com/l "> cialis </a>
設置の状況
実際のサイトはこちら
http://windows-keitai.com/
行ったこと
- pukiwiki.ini.phpの変更
// Blocking SPAM
$use_spam_check = array(
'page_remote_addr' => 1,
'page_contents' => 1,
'trackback' => 1,
'referer' => 1,
);
対策1. 新規投稿時にBASIC認証を実施する
- 新規投稿時のBASIC認証の実施
CGIでのPukiWikiによる認証
→NG
新規投稿時の認証の回避ができてしまう
- アクセスログをみると直接index.phpをたたいているようだ
147.243.236.xx
[05/Apr/2007:17:39:54 +0900] "POST / HTTP/1.1" 302 5 "http://windows-keitai.com/?frontpage
" "Opera/9.0
(Windows NT 5.1; U; en)"
- IPアドレスは毎回変わっているようなのでIPアドレスのブラックリストでは対処できなそう。
- 対策の可能性
何かいいてはないでしょうか?
下記のような改造を行う!?
- BASIC認証配下になっている Edit.phpで Cookieを払い出す。
固定文字列を返す Session cookie で OK。
- lib/auth.cls.php ファイルの check_role() function (line191~)
の中に、readonly属性を確認して returnしている場所 (line197)があるが、
ここで、1.のSession Cookieがない場合には、READONLYと見なして、
Return する。
(readonlyだと返す)
対策2.
- BASIC認証を利用する
→さくらインターネットは利用できない
- Digest認証を利用する
→さくらインターネットは利用できない
- PHP 4.4.4
要PHP5以上
- さくらのPHPの環境(PHPをCGIとして動作)の制限
対策3.
外部認証を利用する
実施の作業
- はてなのIDを取得する
- 外部認証用APIの取得
http://auth.hatena.ne.jp/

- 下記のファイルを編集
/pukiwiki-data/contents1
auth.ini.php
'hatena' => array(
'user_name1' => ROLE_ADM,
),
auth_wkgrp.ini.php
// Hatena
'hatena' => array(
'use' => 1,
'api_key' => 'xxxxxxxxxxxxxxxxxxxxxxxx',
'sec_key' => 'xxxxxxxxxx',
),
- pukiwiki.ini.phpで、
37行目
// PKWK_READONLY - Prohibits editing and maintain via WWW
// NOTE: Counter-related functions will work now (counter, attach count, etc)
if (! defined('PKWK_READONLY'))
define('PKWK_READONLY', 4); // 0,1,2,3,4
を「4」に。
- MenuBarなどの一番したに
#hatena
を追加
対策3.の問題点
- できれば回避したい問題点
- はてなログインしないと、コメントできない。
コメントだけはできるとうれしいなぁ・・・と思っていますが何かいい手はありますか?
- ユーザーはサブドメインの各WIKI毎に認証が必要(これがちょっとつらいか)
- 小さい問題点
回答
- すみません。test というページを作ってしまいました。消しておいてください。新規ページ作成の際に、認証を抜けることができるようです。 -- upk
- spam.ini.php についての機能は、本家でのテスト実装部分の取り込みなので、現状では、このサイトでの説明はまだありません。-- upk
- 設定的には、SPAM設定で逃げるというよりも、新規投稿時の認証の回避ができてしまう。という問題の対策をどうやるのが良いのか?という感じかと思っています。今回、回避した方法をここで書くわけにはいかないので、書きませんが、逃げれることは確かです。-- upk
- 早速レスありがとうございます。こちらご指摘のとおり新規ページ作成の際に認証を抜けることができます。上記に補足しておきますね。 -- KATSUO?
- rev1440であれば、外部認証にも対応しているので、TypeKeyやhatena認証を利用すれば、このような対応を行わなくても良いはずですけどね。-- upk
- さくらインターネットだと、BASIC認証は利用できず。PHP 4.4.4の為、Digest認証は利用できず。という理解でいいでよね?で、残るは、外部認証で、こちらだと回避できる可能性がある、というアドバイスという理解でいいですか? -- KATSUO?
- CGIとかとは関係ない外部認証なので、試してみるのも良いと思います。あと、PHP5 であっても、さくらの環境だとDigest認証は使えないと思いますよ。-- upk
- いろいろありがとうございます。upkさんのおっしゃるようにまずは外部認証やってみました。手順も上記に記載しておきます。これで、コメントだけログインせずに行うことはできたりしないですよね?^^; わがままですみません。 -- KATSUO?
- 新規ページの作成に関する制御機能を、rev1441 で対応してみました。お試し下さい。-- upk
- ありがとうございます!!! 下記に入れてみました。http://s01sh.windows-keitai.com/
-- KATSUO?
- TypeKyeですが、PHP 5の条件を満たしていない、&gmp bcmathに未対応なので、はてなと、JugemKeyのみ動作するようです。 -- KJM?