**[[質問箱/222]] [#h6d9ff34]
|RIGHT:70|LEFT:410|c
|~サマリ|スパム対策について|
|~バージョン|1.4.7plus-u2-i18n|
|~投稿者|[[KATSUO]]|
|~状態|完了|
|~投稿日|&new{2007-04-08 (日) 10:39:44};|
***質問 [#t0072b5e]
新規投稿スパムに悩まされています。
**新規投稿スパムとは [#jfe3ec16]
たとえば、同じwiki内に「Outlook Mobile」というページがあると「outlook mobile」という新規ページを作成し、下記のような英語のみ+URLリンクを新規ページで投稿するというものです。
<a href=" http://xxxxx.xxx.com/l "> cialis </a>
**設置の状況 [#v6a53d45]
-さくらインターネット
--OS Version FreeBSD 6.1-RELEASE-p10 i386
--PHP 4.4.4
--Apache Version Apache/1.3.37
-WikiFarm(複数Wikiの構築)
--http://pukiwiki.cafelounge.net/plus/?Documents%2FInstall#i7c82ef3
--%%[[Documents/Install#i7c82ef3]]%% → [[Documents/WikiFarm#i7c82ef3]]
-Pukiwiki Plus!の~バージョン
--1.4.7plus-u2-i18n rev. 1440
-フォルダの構成
# .
# |-- www
# |-- ''&color(Red){contents1};''
# |-- wiki-common
# |-- wiki-data
# |-- ''&color(Red){contents1};''
# |--pukiwiki.ini.php
# |--spam.ini.php
**実際のサイトはこちら [#yc5f04df]
http://windows-keitai.com/
**行ったこと [#sb3fc4c8]
-pukiwiki.ini.phpの変更
#pre(){{
// Blocking SPAM
$use_spam_check = array(
'page_remote_addr' => 1,
'page_contents' => 1,
'trackback' => 1,
'referer' => 1,
);
}}
-下記の確認
--http://windows-keitai.com/?:config/spam/WhiteList/skip_domain
--http://windows-keitai.com/:config/spam/BlockList
--http://windows-keitai.com/:config/spam/WhiteList/praivate_network
-http://wikki.sakura.ne.jp/pert/pukiwiki.html
-関連ファイルをsvnの最新版に
--/lib/spam.php
--spam.ini.php
**対策1. 新規投稿時にBASIC認証を実施する [#h45fc83e]
-新規投稿時の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. [#r1f780d9]
-BASIC認証を利用する
→さくらインターネットは利用できない
-Digest認証を利用する
→さくらインターネットは利用できない
--PHP 4.4.4
要PHP5以上
--さくらのPHPの環境(PHPをCGIとして動作)の制限
**対策3. [#za36db2d]
外部認証を利用する
***実施の作業 [#n298fccc]
+はてなのIDを取得する
+外部認証用APIの取得
http://auth.hatena.ne.jp/
+下記のファイルを編集
/pukiwiki-data/contents1
auth.ini.php
#pre{{
'hatena' => array(
'user_name1' => ROLE_ADM,
),
}}
auth_wkgrp.ini.php
#pre{{
// 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などの一番したに
#pre{{
#hatena
}}
を追加
***対策3.の問題点 [#w3545e05]
-できれば回避したい問題点
--はてなログインしないと、コメントできない。
コメントだけはできるとうれしいなぁ・・・と思っていますが何かいい手はありますか?
--ユーザーはサブドメインの各WIKI毎に認証が必要(これがちょっとつらいか)
-小さい問題点
--ログインせずにページの編集や新規ページ投稿を行おうとすると
Runtime errorの表示が。
→はてなへのログインが必要です。とのメッセージの方が親切?
--ドメイン単位で、APIキーの払い出しが必要
例)
http://windows-keitai.com/
http://x01ht.windows-keitai.com/
の2つのwikiがあった場合には、それぞれ個別にAPIキーが必要
***回答 [#s18efdd6]
- すみません。test というページを作ってしまいました。消しておいてください。新規ページ作成の際に、認証を抜けることができるようです。 -- [[upk]] &new{2007-04-08 (日) 16:49:47};
-spam.ini.php についての機能は、本家でのテスト実装部分の取り込みなので、現状では、このサイトでの説明はまだありません。-- [[upk]] &new{2007-04-08 (日) 16:53:39};
-設定的には、SPAM設定で逃げるというよりも、新規投稿時の認証の回避ができてしまう。という問題の対策をどうやるのが良いのか?という感じかと思っています。今回、回避した方法をここで書くわけにはいかないので、書きませんが、逃げれることは確かです。-- [[upk]] &new{2007-04-08 (日) 16:56:18};
- 早速レスありがとうございます。こちらご指摘のとおり新規ページ作成の際に認証を抜けることができます。上記に補足しておきますね。 -- [[KATSUO]] &new{2007-04-08 (日) 20:09:51};
- rev1440であれば、[[外部認証>Documents/External authentication API]]にも対応しているので、TypeKeyやhatena認証を利用すれば、このような対応を行わなくても良いはずですけどね。-- [[upk]] &new{2007-04-08 (日) 21:34:31};
- さくらインターネットだと、BASIC認証は利用できず。PHP 4.4.4の為、Digest認証は利用できず。という理解でいいでよね?で、残るは、外部認証で、こちらだと回避できる可能性がある、というアドバイスという理解でいいですか? -- [[KATSUO]] &new{2007-04-08 (日) 21:58:34};
-CGIとかとは関係ない外部認証なので、試してみるのも良いと思います。あと、PHP5 であっても、さくらの環境だとDigest認証は使えないと思いますよ。-- [[upk]] &new{2007-04-08 (日) 23:55:00};
- いろいろありがとうございます。upkさんのおっしゃるようにまずは外部認証やってみました。手順も上記に記載しておきます。これで、コメントだけログインせずに行うことはできたりしないですよね?^^; わがままですみません。 -- [[KATSUO]] &new{2007-04-09 (月) 01:06:58};
- 新規ページの作成に関する制御機能を、rev1441 で対応してみました。お試し下さい。-- [[upk]] &new{2007-04-10 (火) 23:42:17};
- ありがとうございます!!! 下記に入れてみました。http://s01sh.windows-keitai.com/ -- [[KATSUO]] &new{2007-04-11 (水) 16:09:42};
- TypeKyeですが、PHP 5の条件を満たしていない、&gmp bcmathに未対応なので、はてなと、JugemKeyのみ動作するようです。 -- [[KJM]] &new{2007-04-12 (木) 06:56:09};
//#comment