質問箱/222
的編輯
http://pukiwiki.cafelounge.net/plus/?%E8%B3%AA%E5%95%8F%E7%AE%B1%2F222
首頁
搜尋
電子佈告欄
最新更動
連接
求助
ダウンロード
新增
原始碼
開發說教·評語
錯誤報告
問題箱子
コラム
逆向連結
Search Key List
Link List
pukiwiki-official
pukiwiki-dev
Wikiの書き方(整形ルール)
プラグインヘルプ
各種ドキュメント
拡張(自作)プラグイン
自作スキン
Top
>
質問箱
> 222
**[[質問箱/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の構築) --%%[[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
不變更時間戳記
**[[質問箱/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の構築) --%%[[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