mt-wizard.cgi - Movable Type 3.3 - 2006年6月

MTバージョン 3.3 から mt-wizard.cgi を使うと、Movable Type のインストールがより簡単にできるようになりました。
 http://www.sixapart.jp/pronet/developers/movabletype/mt-install-wizard.html

「Movable Type 3.3のマニュアルにはmt-wizard.cgiを使ったインストール方法は記述されていませんが・・・」

データベースとして、SQLite (または SQLite2 )を使用すれば、Xrea.comさん、Coreserver.jpさんのサーバでは、Movable Type をアップロード(tarball の展開)するだけで、パーミッションの変更など一切行わないで、インストールは成功します。

インストール完了後、mt-wizard.cgi の属性やファイル名を変更せず残しておくと、ブラウザで再アクセスした場合、

Movable Type Configuration Wizard

Movable Typeの構成ファイルがすでに存在します。ウィザードは実行できません。

Version 3.3-ja Copyright © 2001-2006 Six Apart. All Rights Reserved.

と表示され、不正な利用はできないようです(すべてのバージョンで確認していません)。
Movable Type Commercial version 4.x-jaでは、

構成ファイルが見つかりました

構成ファイル(mt-config.cgi)はすでに存在します。Movable Typeにサインインしてください。

ウィザードで新しく構成ファイルを作るときは、現在の構成ファイルを別の場所に移動してこのページを更新してください。

参照ページ【Movable Type 4 サポート】
 http://www.movabletype.jp/faq/post-7.html

「A. 以下の CGI ファイルについては、Movable Type のインストール作業の終了後、実行することはありません。セキュリティ上必要な場合には、パーミッションを変更して外部からの実行を行えないようにするか、あるいはウェブサーバーから削除してください。」

    * mt-check.cgi
    * mt-wizard.cgi
    * mt-testbg.cgi
    * mt-upgrade.cgi

2006年06月13日
Movable Type 3.3 発表
 http://www.sixapart.jp/pressroom/2006/06/movable_type_33_1.html
2006年06月28日
Movable Type 3.3 リリース
 http://www.sixapart.jp/pressroom/2006/06/movable_type_33_2.html

投稿内容は実際に旧バージョンをインストールし確認したものです。
 » Version 3.3-ja Copyright © 2001-2006 Six Apart. All Rights Reserved.
mt-config.cgi
 Movable Type configuration file(構成ファイル、環境設定ファイル)

Windows XPの延長サポート - 2014年4月8日まで

Windows XP (Home, Professional)の延長サポート期間は2014年4月8日まで、あと6年間であると、米Microsoft社のブログに掲載されました(4月25日記事)。
 MICROSOFT SUPPORT LIFECYCLE BLOG
 http://blogs.technet.com/lifecycle/
日本語参照(解説)ページ
 http://www.itmedia.co.jp/enterprise/articles/0805/01/news006.html

免責事項として、
*This posting is provided "AS IS" with no warranties, and confers no rights.*

なんらの保証なく現状のまま提供する・・・と書かれています(マイクロソフト社員による投稿は、マイクロソフト社の正式な見解ではない)ので、将来変更される可能性もあります。

SQLite2 or SQLite3 - Movable Type 4 - mt-config.cgi

Xrea.com および Coreserver.jp さんのサーバでは、現在(2008-01-08)
データベース SQLiteのバージョン
  SQLite3  3.3.7
  SQLite   2.8.17
を利用できます。
一方、Movable Type 4 が利用できる SQLite Versionは、
  バージョン 2  ダイナミック・パブリッシング機能あり。環境変数「useSQLite2」必須
  バージョン 3  上記機能なし。バージョン 2との互換性なし。環境変数不要
です。
  http://www.movabletype.jp/documentation/supporting_dynamic_publishing.html
よって、MTのダイナミック・パブリッシングを利用したい場合
mt-config.cgi に1行追記します。
 useSQLite2 1
データベースは SQLite2 となります。
mt.dbデータ ** This file contains an SQLite 2.1 database **

下記のようにコメントアウト(行頭に#を付ける)すると、
データベースは SQLite3 となります。
mt.dbデータ SQLite format 3
 http://www.movabletype.jp/documentation/database_option_sqlite.html

ObjectDriver DBI::sqlite の1行は SQLite、SQLite2、SQLite3、・・・で変更ありません。

#================ DATABASE SETTINGS ==================
##### SQLITE #####

# useSQLite2 1
ObjectDriver DBI::sqlite
Database /virtual/USER-ID/path/to/sqlite/database/mt.db

# Xrea.com および Coreserver.jp さんのApache HTTP サーバは suEXEC 設定となっているため、mt-config.cgi に追記を要する他4項目

DBUmask 0022
HTMLUmask 0022
UploadUmask 0022
DirUmask 0022

# また、データベースSQLite のフォルダ属性(パーミッション)は 777 ではなく 700です。

blog::k-12 ブログツールの進化

ブログの驚異的な普及の原動力となったブログツール「Movable Type」は2001年10月、開発者トロット夫妻が設立した米Six Apart社から公開されました。標準的なブログツールとして世界的に普及したため、2004年3月18日、日本法人「シックス・アパート」が設立され、翌月から公式日本語版が提供開始となりました。
もちろん、公式日本語版以前から有志による日本語化が行われていましたが、翌年の2005年2月になっても(当時の最新バージョン Movable Type 3.15)、日本語表示に関する問題がすべて解決されたわけではありませんでした。この頃はさらにブログのプログラム上の脆弱性を踏み台としたスパムやブログ自体の機能から(コメント、トラックバックによる)スパム急増のため、ネットワークやサーバにとって重大な問題となっていました(全ブログツールで発生)。
「これら技術的な問題は必ず解決される。しかし、利用者層の急速な拡大とともに、子供や学校教育にどのような影響を与えるのだろうか」と、いろいろ考えて開設したブログが

初回エントリー「個人情報とブログ」
2005年2月 6日 15:10
最近、義務教育の中で、ブログツールを利用する学校が増えています。・・・
 http://k-12.be/archives/2005/02/post.html

で始まる

ブログ・タイトル「blog::k-12」
小学校・中学校・高等学校 (k-12) のキャンパス内でブログ blog を利用する際の個人情報保護, AUP などについての提言

です。当時、公開ブログによる情報発信を行っていた学校は少なく、実際に閲覧し調査してみました。

Yahoo!カテゴリ
 http://www.yahoo.co.jp/
トップ > コンピュータとインターネット > インターネット > 子ども向け >
カテゴリ:子どもの安全

ネット社会と子どもたち協議会 通称「ネット子」
 http://net-society.org/index.html
のネット子リンク集
「子どもたちがネット社会をよりよく生きていくための知識・技能・モラル・安全・利用法などの情報を提供している、国内の機関やサイトを集めた総合リンク集」
その他(個人運営のサイトやブログ等)
 http://net-society.org/net-ko.html

からもリンクしています。
先駆的ブログツール「Movable Type」日本語版は、2007年8月8日 バージョン4.0 となりました。情報の発信と活用に際して、進化し続けるブログツールを上手に利用して下さい。
なお、ブログ・タイトル「blog::k-12」では、旧バージョンのテンプレート使用中のため、現在、簡易的な表示形式となっています。

Movable Type 4 - base_theme.css

/*テンプレート名: スタイルシート(ベーステーマ)
/*テンプレートの種類: スタイルシート(ベーステーマ)(base_theme)
/*出力ファイル名: base_theme.css 
/*スクリプトのコピー  2007/11/12 UTF8エンコード base_theme.txt

Movable Type 3.34 からアップグレード Version 4.01 [ Movable Type Publishing Platform 4.01 ] したとき、Movable Type 4の基本スタイルシート base_theme.css などは作成されません。
Movable Type 3.34のBase Weblog (base-weblog.css) は移行します。
Movable Type 4の既定デザインを利用できません。
例) 本ブログのデザインでは base_theme.cssをインデックステンプレートに組み入れても、多くのテンプレートやモジュールがインストールされません。

blog 紹介とスクリーンショット

スクリーンショットの方法:
Windows   専用キー「Print Screen」または「PrtSc」
Macintosh   「Command キー」+「shift」+「3 (キーボード左上)」

Screenshot 時、Macではシャッター音が鳴り、ハードディスク内に PICT形式のファイルが自動作成され、標準実装のテキストエディタ「Simple Text」などで閲覧できます。GraphicConverterなどの画像変換ソフトでJPEG形式の画像にします。
Windows では、「クリップボード」上に JPEG形式のファイルとして取り込まれるだけですので、画像ソフトを起動し貼り付けた後、加工します。
解りやすいページ:「スクリーンショットのススメ」
  » http://f18.aaa.livedoor.jp/~tsurara/scr.htm



このブログです。



投稿者ウェブアドレス blog::k-12

ともに、ファイルサイズ 10KB程度。画像加工として若干の「輪郭強調」を行いました。

サイニタイズ、エスケープ、オーバーフロー

So-netブログ "blog.so-net"のエントリー (同一投稿者)
  「タグ、特殊文字 <!--pre-->PREタグなど」
» http://blog.so-net.ne.jp/novel/2004-12-14
を当ブログにコピーし、ブログツール「Typepad」の対応を調査します。
エントリー転載: (注 MyBlogListは、現在「ドリコムRSS」と改称されています。)
[追記 2006/1/25] タグや特殊文字のサイニタイズ、エスケープは、各ブログツール・ブログサービスで対応が異なるので、新規登録・インストール時に確認した方がよいようです。この記事の投稿者は、本エントリーを他ブログにコピーし、「サイニタイズ、エスケープ、オーバーフロー」などの対応や Pingサーバの表示内容を調査します。
So-netブログにおけるタグ、特殊文字
(1) コメント欄のpostでは、タグが使えなかった。
(2) タイトル中に preタグを特殊文字 「&キーワード;」 「&#番号;」で書き込み、TB (TrackBack) ping すると、リンクリスト MyBlogList の表示が小さくなった( 正規のpreタグとして誤作動したようである ⇒ 追記【2004/12/16】 MyBlogさんに連絡しました。エスケープ出力となり、不具合解決 感謝のメールが届きました)。
(3) 本来のPRE タグではない。StyleSheet (CSS) のとおり表示されるが、ブラウザの横サイズを無視できないので、途切れてしまう。しかし、ソースを見ると、たしかに45文字「テスト」あります。
(4) 長い文章を引用するとき(コメント、出典元のコピー) 、BLOCKQUOTE タグを使い、適当なところで<br ⁄>の手動挿入を行うしかないようです。
PREタグ

テスト テスト ・・45文字繰り返し・・ テスト テスト  [画面サイズを越えたとき途切れます]

BLOCKQUOTEで同じ文章を表示

テスト テスト テスト テスト テスト テスト テスト テスト テスト テスト テスト テスト テスト テスト テスト テスト テスト テスト テスト テスト テスト テスト テスト テスト テスト テスト テスト テスト テスト テスト テスト テスト テスト テスト テスト テスト テスト テスト テスト テスト テスト テスト テスト テスト テスト テスト テスト テスト テスト テスト テスト テスト テスト テスト

使い方のマニュアルでは、本文の編集に際して "a address b blockquote br caption dd dir div dl dt em font h hr i img li menu ol p pre span strike strong table tbody td th tr u ul " のタグが使用できるようです。 テスト用コメント内では、危険なタグはエスケープされています。

&amp; &lt; &gt; &#039; &#034;
&amp;amp; &amp;lt; &amp;gt; &amp;#039; &amp;#034;
&lt;pre&gt;
by エスケープ文字 (テスト入力)

以下に「TypePad」の調査結果を記載します。・・・
So-netブログとは異なり、エントリーのタイトルにタグ達が使用されると、エスケープされないようですので、早々に調べるつもりです。スタイルシート "overflow"規定値 visible (表示する)で比較します。

Splog, hyphen (s) as dividers in URL [Google]

ホームページやブログのURL、本文の中にハイフンがあると、
(例) http://asbestos-mesothelioma-cancer.****.com/

keyword1: asbestos
keyword2: mesothelioma
keyword3: cancer

Google は3つのキーワードとして読み取ります。
この機能をSEOのために悪用したスプログ Splog (Spam blog スパム・ブログ)が急増しているため、最近ではブログURL内のハイフンはスプログ判別に利用されるようです。誤解されないためにハイフン多用は避けましょう。

● Google test: hyphen and underscore
[December 2004] The best word separators for Search Engine Optimization
 » http://www.webrankinfo.com/english/seo-news/hyphen-or-underscore.php
By Olivier Duffez
● Should You Use Targeted Keywords in URL?
[December 2004] Do Search Engines Look at Keywords in URL?
 » http://www.webrankinfo.com/english/seo-news/keywords-in-url.php
By Olivier Duffez
● Yahoo! コンピュータニュース:
 » スパムのブログ版「スプログ」、ブログ界の脅威に
 » http://headlines.yahoo.co.jp/hl?a=20051101-00000002-wir-sci

Movable Type 3.2-ja, 3.2-ja-2とRangeヘッダ不正

Movable Type 3.171-ja までは、http://blog.goo.ne.jp/XMLRPC への更新ping は昼夜どちらも正常に送信できましたが、
MT 3.20-ja, 3.20-ja-2のアップグレード後、トラフィックの少ない日中であっても、
送信ログ:

「http://blog.goo.ne.jp/XMLRPC」へのトラックバックは失敗しました: HTTPエラー: 416 Requested Range Not Satisfiable

となり、再送信も不成功となります。他のPing サーバへの送信は問題ありませんので、「MT3.20-ja, 3.20-ja-2のRangeヘッダが不正である」と判定するのは goo.ne.jp側の設定に関することであり(どちらかにバグがあるという問題ではないですから)、個人的には解決できない厄介な問題です。

Movable Type サポート様のご回答 [追記 2005/10/26]

goo 様で運営されている更新 ping サーバーへ、更新 ping が正常に送信されない問題についてですが、Movable Type 3.171 と Movable Type 3.2 での更新 ping 送信の機能に関する仕様を検証しましたが、バージョンアップに伴って更新 ping 送信の機能については変更しておりません。そのため、goo 様側で何らかの仕様変更があった可能性はありますが、こちらではその詳細ついては確認することができません。
また、Movable Type の更新 ping 送信の機能は更新 ping の仕様に基づいており、他の更新 ping サーバーへの送信は正常に行われていることから、やはりお客様がご指摘されましたとおり goo 様側での問題となりますため、こちらでは対応することができません。どうかご了承ください。

[問題解決]
http://blog.goo.ne.jp/XMLRPC への更新Ping は2005/10/31 17:54:19 成功しました。Movable Type 以外の仕様変更があったものと考えます。

Berkeley DBの諸問題

Movable Type 3.2日本語版では、データベースとしてBerkeley DBを使用すると、数百KBの「エントリー(テキスト形式)」の「読み込み」は遅延または失敗します。DBに取り込んでいないと諦めてログアウトしたり、しばらくしてからエントリーを見ると、読み込まれていたり、いなかったりと、非常に不安定な状態です。数十KB程度のデータの読み込みは大丈夫のようです。
他の問題は、公式ページ
 » http://www.sixapart.jp/movabletype/news/2005/10/05-1955.html
および、「Ogawa::Memoranda: MT 3.2でrecently_commented_onとBerkeleyDBに嵌っている人が多い件について」
 » http://as-is.net/blog/archives/001051.html
をご覧下さい。

Archive File Path Specifiers / Movable Type 3.2

Movable Type 3.2-ja の各アーカイブをVersion 3.1x 風に変更するためには、【公開の設定】「アーカイブ・マッピング」の出力フォーマットを以下のようにカスタマイズします。
» http://www.sixapart.com/movabletype/docs/3.2/e_archive_file_path_specifiers/

エントリー・アーカイブ:  archives/%e%x  (例) archives/000284.html
カテゴリー・アーカイブ:  archives/cat_%c%x  (例) archives/cat_art.html
月別アーカイブ:  archives/%y_%m%x  (例) archives/2005_06.html
但し、日本語だけのカテゴリー名であれば、カテゴリー・アーカイブ cat_ の右側は"dirify"のアルゴリズム algorithm にお任せとなります。

[追記 2006/2/9]
Movable Type 旧バージョンからのアップグレードでは、個別エントリーアーカイブ URLの右端が、たとえば「6桁数字の連番」+拡張子 phpであれば、個別エントリーアーカイブの出力フォーマット
   000123.php
でよいようです。
なお、旧バージョンの継続使用時、
   エントリー「dirify and Permalink (Movable Type)」
   » http://www.osbsd.net/2004/11/dirify_and_perm.html
をご覧下さい。

Movable Type Version 3.2-ja, 3.2-en_USと不正な ScriptURI

エントリー「問題解決:MT 3.17と AdminCGIPath https+複数パス」
 » http://shellscript.biz/archives/000062.html
エントリー「MT 3.17の問題点:AdminCGIPath, SSLサーバ( https プロトコル)」
 » http://shellscript.biz/archives/000061.html
においても指摘いたしましたが、
[MT]/lib/MT/App.pm のサブルーチンおいて、Movable Typeの ScriptURI, StaticURI などが決定します。しかし、(たぶん)環境変数を多用した条件文が採用されているため、サーバ環境によっては、不正な ScriptURIとなることがあります。
Xrea.com さんのサーバでは、Movable Type 3.17-ja, 3.17(3.16)-en_US からこの問題が発生しています。このバージョンでは、https, AdminCGIPath などを利用する一部のユーザーだけの問題でした。

問題解決
以下の問題点はサーバーの「広告免除権」を購入して、環境変数が
SERVER_PROTOCOL = HTTP/1.1
となれば解決します
Movable Type Version 3.2-ja, 3.2-en_US では、MTのインストール、アップグレードともに不能となる深刻な問題となっています。
具体例として[ドメイン名 "example.com"、[MT]ディレクトリー "mt"]、
  http://www.example.com/mt/index.html
にアクセスすると、インストールを開始する画面に変わりますが、
  http://www.example.com/mt/mt-upgrade.cgi?__mode=install

ブログを始める前に、データベースを初期化してインストール作業を完了する必要があります。
 ……
Version 3.2-ja Copyright c 2001-2005 Six Apart. All Rights Reserved.

ボタン【インストール続行】をクリックすると、エラー表示となります。

アドレス included://www.example.com/mt/mt-upgrade.cgi
無効な構文エラー

前ページのソースを表示すると、

 …
ScriptURI = 'included://www.example.com/mt/mt-upgrade.cgi';
ScriptBaseURI = ' ';
StaticURI = 'http://www.example.com/mt/mt-static/';
HelpBaseURI = ' ';
 …
 …
<p>ブログを始める前に、データベースを初期化してインストール作業を完了する必要があります。</p>
 …
 …
<form method="post" action="included://www.example.com/mt/mt-upgrade.cgi">
<input type="hidden" name="__mode" value="install">
<input type="submit" value="インストールを続行" />
</form>

Xrea.com さんのサーバでは、[MT]/lib/MT/App.pm などのサブルーチンにおいて、今後も同様の問題が起こると思います。
[追記 2005/10/3]
MTをインストールしたXrea.com さんのサーバの環境変数を調べると、
SERVER_PROTOCOL = INCLUDED
でした。
 » XREA.COM 広告について
最下段 「注2) CGIなどが適切に動かない場合、適宜対応してください。」
Movable Type 3.2以降のインストール/アップグレード/使用に際して、サーバーの広告免除権を購入する方法を選択することになります。
問題解決のために参考となったページを以下に列記します。
(1) フォーラム「XREA SUPPORT BOARD」
  » http://sb.xrea.com/showthread.php?t=1984
(2) フォーラム「XREA SUPPORT BOARD」
  » http://sb.xrea.com/printthread.php?t=6759&page=23&pp=15

Rapidsite/Apa

ラピッドサイト は、シリコングラフィック社 Silicon Graphics, Inc. (SGI) が提供する OS IRIX (unix) をウェブホスティングサービスに利用しているそうです。webサーバには、Apache が使用されています。
  http://www.rapidsite.co.jp/www/faq/index.html#17a
検索サイトにて「IRIX Rapidsite」と入力して、ヒットするURL(主に、数年前のページ) の中に (例)

OS : IRIX
Server : Rapidsite/Apa/1.3.** (Unix) FrontPage/5.0.2.** mod_ssl/2.8.** OpenSSL/0.9.*a

があります。
ホスティンググループ NTT/VERIO 技術提供のサーバそのものであるか不明ですが、Rapidsite/Apa とは、カスタマイズ後に標準搭載された Apache のこと(のよう)です。
[追記 2005/8/26] ウェブ改ざん報告を記録したページには2003年秋頃まで、本サーバ名がときどき登場します。その後、サーバ名が Apache に変更されたためか? ヒットしません。

ネット文化とウェブログ

2005年2月6日、ブログ blog::k-12 を開設し、思いつくままにエントリー投稿を続けていたら、So-net ディレクトリ型検索エンジン「カテゴリー別の厳選サイト集」に登録されていました。
カテゴリー検索 > コンピュータとインターネット > 総合情報,ニュース > ネット文化 > ウェブログ(2005/7/18現在, 361ページ) > 総合情報
  http://so-net.category.goo.ne.jp/computers/01094/19693/24735/24737/2.html
カテゴリー「ネット文化」には、他に「2ちゃんねる」 「オープンソース」 「ネットアイドル」があります。インターネット文化 については、
  http://www.internetclub.ne.jp/MRIKAI/region/NO00/index.html
  http://www.internetclub.ne.jp/MRIKAI/region/NO00/net.html
のページが参考となります。予定?の連載ページが発見できず、とても残念です。また、
 ウェブログ > ウェブログツール
の厳選サイトには、
  Six Apart Japan||シックス・アパート
    http://www.sixapart.jp/
  TypePad
    http://www.typepad.jp/
元祖ブログの両ウェブサイトがあります(当たり前でしょう)が、残念ながら「文字化け」しています。「文字化け」問題とは直接関係ないのですが、ちょっと調べてみたところ、
  FEED Validator for Atom and RSS
  http://feedvalidator.org/
Six Apart Japan

RSS 1.0: validate
RSS 2.0: 問題あり
Atom 0.3: not validate

[URL http://www.movabletype.jp/ は http://www.sixapart.jp/movabletype/ にリダイレクトしますが、サブディレクトリ内には RSS, Atom 関連のファイルはありません]でした。また、URL http://www.typepad.jp/ にもRSS, Atom 関連のファイルはありません。
RSS (Atom) 実装が「ネット文化 blog」のルールのように思います。
[追記 2005/7/22] Movable Type等のテンプレートに関連した validity の問題は発売元でご検討いただくことになりました。

問題解決:MT 3.17と AdminCGIPath https+複数パス

Movable Type 3.17-ja, 3.17(3.16)-en_US では、App.pm を下記のように編集することにより、
mt.cfg
AdminCGIPath https://ss1.xrea.com/ユーザーID.s*.xrea.com/複数path/to/MT_DIR/mt.cgi
へのアクセスでは、
ScriptURI = '/ユーザーID.s*.xrea.com/複数path/to/MT_DIR/mt.cgi' と正しくなります。
AdminCGIPath http://ユーザーID.s*.xrea.com/MT_DIR/mt.cgi
へのアクセスでは、
ScriptURI = '/MT_DIR/mt.cgi'
となります。

[MT]/lib/MT/App.pm の変更行
597行目あたりの サブルーチン sub app_path

    if ($path =~ m!^https?://[^/]+(/?.*)$!i) {
        $path = $1;
    } elsif (!$path) {
        $path = '/';
}

を下記のように変更します。

    if ($path =~ m!^https?://[^/]+(/?.*)$!i) {
    if ($ENV{REMOTE_ADDR} eq '192.168.1.xyz')
    { $path = '/ユーザーID.s*.xrea.com/複数path/to/MT_DIR/';}
    else { $path = $1;}
    } elsif (!$path) {
        $path = '/';
}

Xrea.com さんのサーバでは、環境変数 HTTPS の on, off を取得できませんので、HTTPS によるアクセスは特定のローカル IP経由であることを利用し、環境変数 $ENV{REMOTE_ADDR}による条件文としました。サーバ名 (例: s150)には、ローカルなIPアドレスが設定されています (例: xyz=50であれば, 192.168.1.50) 。

) ブログそのものは httpプロトコルで運用します。CGIPath, AdminCGIPath ともに https ではエラーが発生する可能性があります。

MT 3.17の問題点:AdminCGIPath, SSLサーバ( https プロトコル)

Movable Type 3.17-ja を Xrea.com さんのサーバにインストールすると、AdminCGIPath は SSL サーバ (サーバ名 ss1) 経由で利用できません。
[追記 2005/6/29] Movable Type 3.17-ja (デフォルト)のインストールで発生するこの問題点は Xrea.com さんのサーバでは解決しました。

  エントリー「問題解決:MT 3.17とAdminCGIPath https+複数パス」
    http://shellscript.biz/archives/000062.html

Movable Type (MT) 設定ファイル mt.cfg の中で、MT のベーシック・ディレクトリ (仮に MT_DIR とします) にある mt.cgi までの パス( PATH )を指定します。

CGIPath http://www.example.com/path/to/MT_DIR/
CGIPath https://www.example.com/path/to/MT_DIR/

形式は、http://, https:// で始まる「絶対 URL」です。ドメイン・ルートからの経路 (PATH) をすべて指定します。CGIPathであれば、PATH の数 (階層) には制限はありませんが、下記のように、mt.cgi のみ異なる URL で運用するとき (セキュリティ対策等のため、AdminCGIPath 利用時) 、

MT 3.17-ja
MT 3.16-us
MT 3.17-us

では、

AdminCGIPath https://ss1.xrea.com/ユーザーID.s*.xrea.com/www.example.com/path/to/MT_DIR/ [設定不可]
AdminCGIPath https://ss1.xrea.com/ユーザーID.s*.xrea.com/www.example.com/MT_DIR/ [設定不可]
AdminCGIPath http://ユーザーID.s*.xrea.com/www.example.com/MT_DIR/ [設定不可]
AdminCGIPath http://ユーザーID.s*.xrea.com/path/to/MT_DIR/ [設定不可]
AdminCGIPath http://ユーザーID.s*.xrea.com/MT_DIR/ [設定可]
AdminCGIPath https://www.example.com/MT_DIR/ [設定可]

となるようです。つまり、Xrea.com さんのサーバでは、必ず、ドメイン・ルート直下のMT_DIRにMTをインストールし、AdminCGIPath は SSL サーバ (サーバ名 ss1)を経由しないPATHとします。。MT 3.15-ja では、SSL サーバ (サーバ名 ss1) 経由など可能でしたので、セキュリティ上、とても残念なことです。

不正な ScriptURI : MT3.17, 3.16 / App.pm

[追記 2005/6/29] Movable Type 3.17-ja (デフォルト)のインストールで発生するこの問題点は Xrea.com さんのサーバでは解決しました。

  エントリー「問題解決:MT 3.17とAdminCGIPath https+複数パス」
    http://shellscript.biz/archives/000062.html

Xrea.com さんのサーバご利用の方は、エントリー:
「AdminCGIPath と SSLサーバ (https プロトコル)」
  http://shellscript.biz/archives/000061.html
もご覧下さい。
Movable Type 3.17-ja では、AdminCGIPath を利用したとき、ウェブログの管理画面の ScriptURI (の PATH) は下記のように不正となります。
TMPL_VAR NAME=SCRIPT_URL の右辺に問題があります。

【CONFIGURATION SETTINGS】
   http://www.sixapart.com/movabletype/docs/mtmanual_configuration.html#configuration%20settings
mt.cfg
CGIPath
AdminCGIPath
Examples:

CGIPath http://www.example.com/path/to/mt/
AdminCGIPath https://www.example.com/path/to/mt/

【MT 管理画面 ログイン・ページ】

MT version 3.17-ja
ScriptURI = '/to/mt/mt.cgi';
ScriptBaseURI = '';
StaticURI = '/path/to/mt/';
 
MT version 3.15-ja
ScriptURI = '/path/to/mt/mt.cgi';
ScriptBaseURI = '';
StaticURI = '/path/to/mt/';

【MT 管理画面 メニュー・ページ】

MT version 3.17-ja
ScriptURI = '/mt/mt.cgi';
ScriptBaseURI = '';
StaticURI = '/path/to/mt/';
 
MT version 3.15-ja
ScriptURI = '/path/to/mt/mt.cgi';
ScriptBaseURI = '';
StaticURI = '/path/to/mt/';

[2006.02.2005]
Changed files in MT 3.17
   http://www.sixapart.com/pronet/weblog/2005/06/changed_files_i.html

lib/MT.pm 
lib/MT/App.pm 
lib/MT/App/CMS.pm 
lib/MT/Plugin.pm 
lib/MT/Template/Context.pm 
mt-db2sql.cgi 
php/mt.php 
plugins/nofollow/README.txt 
plugins/nofollow/nofollow.pl 
plugins/nofollow/tmpl/nofollow.tmpl 
tmpl/cms/edit_comment.tmpl

(一部のみ引用しました)
[追記 2005/6/23]
上記のファイルを調査を行ったところ、[MT]/lib/MT/App.pm 2005年作成版 が原因でした。
MT315-ja: App.pm,v 1.119.2.1 2004/10/06 22:46:46
ScriptURI は正常な URLとなりますが, 旧バージョンのため、

Error loading : syntax error at (eval 10) line 1, at EOF

と表示され、管理画面は作動しません。以下のバージョンでは、すべて異常な ScriptURIとなります。

MT316-us: App.pm 10862 2005-04-01 01:33:56Z
MT317-us: App.pm 12790 2005-06-02 15:57:42Z
MT317-ja: App.pm 12790 2005-06-02 15:57:42Z

[追記 2005/6/26]
MT 3.17-ja の管理画面を AdminCGIPath http://独自ドメイン/mt/mt.cgi で運用すると、SCRIPT_URL のPATH 不具合は発生しません。しかし、 AdminCGIPath http://複数の階層/mt/mt.cgi (または, AdminCGIPath https://複数の階層/mt/mt.cgi) にすると、エントリー、ウェブログの設定、サイトの再構築などのリンクは、URLのPATHが1階層短縮されるためアクセス不能となり、メイン・メニュー、ログアウトなどのリンクをクリックすると、ログイン・ページにリダイレクトされるなど、ブログのURL以外はすべて不正となります。大幅に変更された [MT]/lib/MT/App.pm ファイル内に問題がありそうです。

header.tmpl とMovable Type のURL

ドメイン名やPATH名が長いと、Movable Type 管理画面上ではヘッダー部分に URLの一部(後部)が表示されてしまいます。
下記のように header.tmpl 22行目 (MT 3.151日本語版) をコメント文にすると、非表示となります。
  [MT]/tmpl/cms/header.tmpl
  <!--TMPL_VAR NAME=MT_URL-->
(なお、MT 3.15英語版ではこの行は存在しません)

CMS.pm Movable Type Version 3.16

英語版 Movable Type Version 3.16 では、
[MT]/lib/MT/App/CMS.pm のファイル内容に重要な変更があり、
MT-316en-US
# $Id: CMS.pm 11284 2005-04-14 00:12:37Z bchoate $
MT-3151ja
# $Id: CMS.pm,v 1.385.2.6.2.1 2004/12/17 03:36:59 ezra Exp $
日本語版 Version 3.151の CMS.pmを使用すると、mt.cgiアクセス不能となります。

Got an error: Can't locate object method "app_dir" via package "MT::App::CMS" at /[PATH]/mt/lib/MT/App.pm line 430.

Movable Type 3.16 日本語版リリースまで待ちましょう。

Movable Type atom.xml Atom 0.3 validity

blog が Atom 0.3 の妥当性 validity を有するか? 関連 templates のバージョンアップの際に常にチェックが必要のようです (RSS が not valid となることは、まれですが)。
  http://www.osbsd.net/archives/000029.php
Movable Type 3.151-ja, 3.15-us, 3.15-ja などで以下のエラーが発生します。
Valid ですが、やや問題ありとの判定です。
Version 3.12, 3.14 については、未確認です。

Warning
This feed is valid, but may cause problems for some users. We recommend fixing these problems.

  FEED Validator for Atom and RSS
  http://feedvalidator.org/
にて validity をチェックした結果です。
atom.xml の15行目あたりがエラー表示されます (7行目あたりの同タグ内ではありません) 。

line 15, column 30: Identifier "tag:www.example.com,2005://*.*" is not in canonical form (should be "tag:www.example.com,2005:%2F%2F*.*")

「相対URL」(truncate URL, relativeURL)表示となっていることを解析したのでしょう。
<$MTBlogRelativeURL encode_xml="1"$>/
このエラーが気になるとき、atom 0.3用 validity checker の指示 [help] どおりに変更すればよいと考えます。ただし、コンテナタグなども編集することは避けた方がよさそうです。

TrackBack spam Plugin mod_rewrite htaccess

Movable Type 管理者は、spam フィルターによる予防とアクセス制限を行いましょう。

Ogawa::Memoranda さんの「Quasi-Spam Filter Plugin」のインストールを強く推奨いたします。comments spam, trackback spam 両方に対応しています。ダウンロードファイル名 quasi-spamfilter.zip
   http://as-is.net/blog/archives/000962.html

すでに spammer の攻撃を受け、TBPing spam 送信元の REMOTE_HOST (ホスト名・ドメイン名), REMOTE_ADDR (IPアドレス) が判明していれば、Xrea.com さんの Apache サーバでは mod_rewrite が利用できますので、[MT]ベーシックディレクトリ内の .htaccess の最下段に下記のように追記し、mt-tb.cgi の使用を禁止する方法もあります。
mt-tbに対する攻撃もあり得るとのことで、ファイル名 mt-tb, mt-t* を使用しましたので、ご注意下さい。
(注: バックスラッシュ = ¥ です)

<Files mt-tb>
<Limit GET POST>
     Order deny,allow
     Deny from all
   </Limit>
</Files>
<Files mt-t*>
RewriteEngine on
RewriteCond %{HTTP_REFERER} .+ [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mozilla/ [NC,OR]
RewriteCond %{REMOTE_HOST} \.example\.domain\.jp$ [NC,OR]
RewriteCond %{REMOTE_HOST} ^proxy.*\.example\.domain\.com$ [NC,OR]
RewriteCond %{REMOTE_ADDR} ^192\.168\.0\.10 [OR]
RewriteCond %{REMOTE_ADDR} ^192\.168\.1\.
RewriteRule ^.*$ - [F,L]
</Files>

plugin 「tbexploit.pl」がインストール済みであれば、HTTP_REFERER, HTTP_USER_AGENT の指定行はコメントアウトできます。ホスト名、IPアドレスは、実際のものを入力して下さい。
最終行のオプション F (forbidden) により、条件が一致したアクセスを拒否します。
論理和 OR を使用しているため、 オプション Fの直前の行には [OR] は付けないで下さい。

なお、Xrea.com さんのサーバでは、( Apache のバージョン は非表示のため、推測ですが) Apache 1.3.33 などが使用されている可能性があります。よって、1つのFiles や FilesMatch に複数のファイル名を併記できませんので、TrackBack spam に対して <Files mt-tb.cgi> を編集し、Comment spam では <Files mt-comments.cgi> を作成し、編集します( 後者 Comment spam 対策では、HTTP_REFERER, HTTP_USER_AGENT のコメントアウトが必要です) 。spammer 以外の正常アクセスも一部制限されることになります。
ウエブログの設定 > 禁止IP では、入力情報「IPアドレス」、制限「Comment, TB 両方」となります。
[追記] 「Discreet Blog」さんの「トラックバック技術仕様書」をご覧下さい。
Movable Type では、GET による ping 送信は廃止されていますので、誤って [OR] を付けて HTTP POST リクエスト を遮断すると、すべての Trackback を受付けなくなりますので、ご注意下さい。

[参照ページ]
「黒木玄のウェブサイト」
   http://www.math.tohoku.ac.jp/~kuroki/keijiban/Robots.html#mod_rewrite
「けいじわん」
   http://dog.intcul.tohoku.ac.jp/unix/accs-rest.html#rewrite
「neil's world - Temporary trackback spam solution」
   http://www.neilturner.me.uk/2005/Jan/06/temporary_trackback_spam_solution.html
「Trackback の脆弱性についての勧告: blog.bulknews.net」
   http://blog.bulknews.net/mt/archives/001165.html
「リファラつきの Trackback に確認画面: blog.bulknews.net」
   http://blog.bulknews.net/mt/archives/001182.html
「Ogawa::Memoranda: Trackbackの脆弱性」
   http://as-is.net/blog/archives/000897.html

アクセス禁止 RewriteRule ^.*$ - [F,L]
の代わりに、たとえば、
RewriteRule /[PATH]/mt-tb.cgi /[PATH]/2c.htm
ファイル 2c.html のソース
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=euc-jp">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<title>Redirecting...</title>
<script type="text/javascript">
self.location.href='http://www.2ch.net/';
</script>
</head>
<body>
</body>
</html>

とすると、http://www.2ch.net/ へ転送します。

Movable Type 3.15 us/ja Mail.pm Util.pm

日本語化などに関連するいくつかの Movable Type ファイルのバージョンをチェックしました。ようやく英語版と同一バージョンを使用することが多くなったようです。
しかし、Jan 22 2005 発覚したハイジャック
"Hijacked comments.cgi, My comments script was hijacked to email"
   http://www.osbsd.net/archives/000069.php
対策として、肝心のファイル lib/MT/Mail.pm, lib/MT/Util.pm などは表記上、旧ファイル・バージョンが使用されています。誤解されないような編集を希望します。

[過去ログ]
(1) Movable Type 3.11-ja(日本語版) vs MT3.12 英語(リリース)版との違い
   http://shellscript.biz/archives/000029.html

(2) Movable Type 3.121 と 3.12 (ともに英語版)
   http://shellscript.biz/archives/000034.html

[最新バージョンの比較]
lib/MT.pm
3122ja v 1.214 2004/09/30 01:01:13 ezra Exp $
315ja  v 1.214 2004/09/30 01:01:13 ezra Exp $
315us  pre,v 1.1.2.2.2.4.2.1 2005/01/25 02:28:19 ezra Exp $

lib/MT/I18N
311ja  v 1.25 2004/10/19 03:43:40 hirata Exp $
3121ja v 1.25 2004/10/19 03:43:40 hirata Exp $
3122ja v 1.25 2004/10/19 03:43:40 hirata Exp $
315ja  v 1.25 2004/10/19 03:43:40 hirata Exp $

lib/MT/App/CMS.pm
3122ja v 1.385.2.6 2004/10/19 19:27:46 bchoate Exp $
315ja  v 1.385.2.6.2.1 2004/12/17 03:36:59 ezra Exp $
315us  v 1.385.2.6.2.1 2004/12/17 03:36:59 ezra Exp $

lib/MT/App/Trackback.pm
3122ja v 1.42 2004/10/01 18:26:04 ezra Exp $
315ja  v 1.42 2004/10/01 18:26:04 ezra Exp $
315us  v 1.42 2004/10/01 18:26:04 ezra Exp $

php/mt.php
3122ja v 1.19 2004/10/01 00:22:45 bchoate Exp $
315ja  v 1.19 2004/10/01 00:22:45 bchoate Exp $
315us  v 1.19 2004/10/01 00:22:45 bchoate Exp $

lib/MT/Mail.pm
3122ja v 1.22 2004/04/29 02:42:57 ezra Exp $
315ja  v 1.22 2004/04/29 02:42:57 ezra Exp $
315us  v 1.22.12.1 2005/01/25 02:28:19 ezra Exp $

lib/MT/Util.pm
3122ja v 1.133.2.1 2004/10/21 01:02:40 ezra Exp $
315ja  v 1.133.2.1 2004/10/21 01:02:40 ezra Exp $
315us  v 1.133.2.1.4.1 2005/01/25 02:28:19 ezra Exp $

Hijacked comments.cgi Vulnerable CGI Movable Type

投稿タイトル名は "Hijacked comments.cgi, My comments script was hijacked to email" であった。
日本語版 Version 3.122, 英語版 Version 3.15 以外のすべての Movable Type に CGI 脆弱性があり、mt-comments.cgi, mt-send-entry, mt-comments.cgiによって利用される Mail.pm and Util.pm などのバグを早急に解決できないとき、パッチ用 plugin をインストールする必要があります。

ハイジャック事例の第一報
ハンドル名 shirgall氏 Jan 22 2005, 10:53 PM
   http://www.jayallen.org/comment_spam/forums/index.php?showtopic=461&st=0&p=2279&#entry2279
Movable Type の CGI "comments.cgi" を何らかの方法で乗っ取り、
use MT::Util qw(is_valid_email);
行を追記・機能を悪用し、my($addr) 行に spammer のアドレスも列記すればメールヘッダー の from が spammer 自身となる。

脆弱性対策の発表
Six Apart社が Movable Type 3.15 released を公開すると共に パッチ plugin をリリース Jan 24 2005 06:51 PM
パッチ名: patch-20050124-mail-spam.pl  1KB

つまり、2日以内。Jay Allen氏主催の掲示板に投稿したのがよかったのであろう。

[追記 2005/5/29]
最近、Movable Type の脆弱性の問題が相次いでいるが、Movable Type 本家のホームページでは、情報公開や対応がスピーディに行われている。また、plugins ダウンロードサイトもわかりやすくなっており、免責事項も明確である。
# http://www.sixapart.com/pronet/plugins/
# Disclaimer: Six Apart does not test these plugins and is not responsible for any damage they may cause to your hosting environment.

Technorati, Claim a Weblog 後のブログタイトル表示エラー

Ping サーバ Technorati http://www.technorati.com/
にメンバ登録し、ブログページを Claim a Weblog すると、サンプルページ
   http://www.osbsd.net/technorati.html
のように、自動検索可能となります。Cosmos Search とよばれているようです。
2004年12月、Technorati さんのサーバ・ページがリニューアルした後、自動登録ツールのバグ?なのか、Cosmos Search Results:の次行のURL(ないし、ブログ・タイトル) に他人のブログページが表示されるようになりました。
Claim a Weblog を繰り返したり、登録を一旦削除しても同じだったので、support宛てメールにてリビルド等を依頼し、解決しました。
Cosmos Search の内容については、すべて正しかったので、ブログページのURLのみ、他人のものが表示されたようです。

MySQL 4.1.7 (s101, s102 サーバ) と PublishCharset UTF-8

Xrea.com さんの 110台余りのサーバの中で、2つのサーバ s101, s102 は特別な仕様となっているようです。
     Athlon64 3500+ 1GB RAID1 (Perl5.8.3 / PHP5.0.3 / MySQL4.1.7 / PgSQL 7.4.5 )
   http://sb.xrea.com/showthread.php?&threadid=4443

Movable Type 新規インストールの際、
データベース MySQL 使用時、mt.cfg 設定: 文字コード (PublishCharset) utf-8 は使用できません。
UTF-8 として、mt-load.cgi を実行すると、

テンプレートを設定しています...
データの設定中に以下のエラーが発生しました:
Insertion test failed on SQL error Duplicate entry '1-' for key 2

となります。
文字コード (PublishCharset) EUC-JP とする必要があります ( 2005/1/3 確認済み) 。
MySQL4.1 新機能による影響のようです。データベースをみると、
  phpMyAdmin version 2.6.0-pl3 SQL Dump では、sql ファイルは、UTF-8 Unicode (utf8) で作成・エクスポートされます。
  MySQL dump version 10.8 をみると、dump ファイルは、ujis (EUC-JP) で作成・エクスポートされます。

「第48回 MySQL 4.0から4.1へのアップグレード 、トラブってませんか?」
鶴田展之氏 2004/12/21
   http://pcweb.mycom.co.jp/cgi-bin/print?id=25624
などが参考となりそうです。
つまり、s101 サーバでの報告
   http://sb2.xrea.com/showthread.php?p=64430
と同様の設定エラー が s102 サーバにおいても発生しますので、mt.cfg の文字コード (PublishCharset) は 必ず EUC-JP とする必要があります (PublishCharset Shift_JIS は未確認です)。

再構築後、atom.xml のエンコードをみると、"EUC-JP"なので、mt.cfg の文字コード設定が反映しています(当たり前ですが)。
   <?xml version="1.0" encoding="EUC-JP" ?>
これでは、MySQL 4.1系の高機能を利用できるようになっても、
   http://shellscript.biz/archives/000023.html
過去エントリー(2004年09月20日)のとおり、「文字コードEUC-JPでは、エントリーの記述内容次第で、再構築後にRSS、Atomに対応しなくなることがあります。」ので、ブログページの質は低下してしまう。

因みに、MySQL 4.0.23 の s104 サーバなどでは、従来どおり 文字コード utf-8 設定可能です。
[重要! 追記 2005/4/24] s101-s150 すべて4.1系 (MySQL4.1.7) のサーバ と表示変更されています (バージョンアップ完了)。
  http://sb.xrea.com/showthread.php?&threadid=4443
s104, s106, s107, s111, s112, s114, s139 では、MySQL Client API version 4.17, かつ 文字コード utf-8 設定可能となっています。ただし、s103、他サーバについては未確認です。

Movable Type BlogPeople MyBlog DirectoryIndex

Movabel Type では、[ウエブログの設定 サイトURL]:
(例) 独自ドメイン http:⁄⁄www.example.com⁄
となり、「ファイル名(index.html など) は入力しないでください。」との注意規定があります。仮に、
index.php index.html index.htm default.html default.htm default.asp
の順で、DirectoryIndex 設定 (Apache の httpd.conf ないし ホームディレクトリ内の .htaccess ) を行い、
   http:⁄⁄www.example.com⁄index.php (例: ブログではない)
   http:⁄⁄www.example.com⁄index.html (例: MTブログ のトップページ)
を別ファイルとしたいとき、
MyBlog さんの URL登録に際しては、
   http:⁄⁄www.example.com/
とすれば、ブログ URL を自動検出してくれるようです。しかし、

リニューアル後のBlogPeople さんのURL登録に際しては、ping 不能となるので、

   · DirectoryIndex 設定の最優先ファイルがブログのトップページとなるようにする、または、
   · DirectoryIndex 設定のファイルは1つだけとする
   · URLは必ず、Movabel Type 設定 (例) http:⁄⁄www.example.com⁄

とする必要があります。

So-net blog サーバ 負荷コントロール

So-net blog さんのサーバが長時間停止しています。ときどき、サーバ負荷によりアクセスが不安定となっていましたので、blog 専用サーバとネットワークは、大手ISP が運営している従来型のWWWサーバと比べて、負荷の程度が"桁違い"ではないか、と考えていました。特に、So-net blog さん では、ブログサーバなどへの TrackBack ping、Comment、ページ更新がとてもスピーディでしたので、バックグラウンドのタスク自体の負荷も大きいことが予想されました。TrackBack Spam をフィルター、制御する独自システムもなかったようですので、もし早急に復旧しても、今後のblog システムの一層の改善がなされないと、過大な負荷が繰り返される可能性がありそうです。すべて、利用者としての印象です。

トラックバック(TrackBack) URL を GD と ID タグで作成する

個別エントリー・アーカイブのテンプレート (デフォルト)では、
トラックバックURL は タグ <$MTEntryTrackbackLink$> により表示されます。
ブラウザで個別エントリー・ファイルのソースを見ると、たとえば、
     http:⁄⁄www.example.com⁄mt⁄mt-tb.cgi⁄89
となりますので、当然 Google ハッキングなどによる無差別・大量 TrackBack ping を受けるリスクがあります。

Xrea.com さんのサーバーは Linux系ですので、GDグラフィックライブラリーを使った画像生成用の関数がデフォルトでインストールされています(php文を使うと、文字列から画像を作成しブラウザに表示できます)。

もし、GD のインストール、表示パターンが不明であれば、下記の編集を行う前に、
     http://medqa.net/update2003/gfxchek.html
をご覧下さい。
modules.php をクリックすると、Security Code:と同じ画像が表示されます。
注) Unix系サーバ・OSでは、GDなどの拡張ライブラリーを手動でインストールする必要があります。

URL文字 http:⁄⁄www.example.com⁄mt⁄mt-tb.cgi⁄ をGDライブラリーで画像に変換します。サンプルのPHP文では、JPEG画像を生成します。
新規インデックス・テンプレート 例) gfx.php として保存します。背景画像は、グラフィックツールで作成しアップロードします。

<?php
    Header("Content-type: image⁄jpeg");
⁄*  Header("Content-type: image⁄png"); *⁄
    $code = "http:⁄⁄www.example.com⁄mt⁄mt-tb.cgi⁄"; 
    $image = ImageCreateFromJPEG(".⁄background.jpg");
    $text_color = ImageColorAllocate($image, 80, 80, 80);
    ImageString ($image, 5, 15, 5, $code, $text_color);
    ImageJPEG($image, '', 75);
    ImageDestroy($image);
    die();
    break;
?>

背景画像 (例: background.jpg) の上に文字 (例: URLを $code 入力) を配置し、文字のサイズ, 文字の位置 X座標, Y座標 や 文字の色 R,G,B, などを関数で指定します。
サンプルは jpeg画像となりますが、Headerなどを変更すると、png 画像が出力されます。
多くの参考ページ
     http://hotwired.goo.ne.jp/webmonkey/2001/36/index4a.html
があります。

個別アーカイブ・テンプレートのタグ <$MTEntryTrackbackLink$> を、
(例)
     <img src="..⁄gfx.php" style="border-width:0px;" alt="trackbacklink"> <$MTEntryTrackbackID$>
などに変更します。

なお、このような作業の意義については、
     comment spam, trackback spam 対策 ( Movable Type )
をご覧下さい。

comment spam, trackback spam 対策 ( Movable Type )

追記: 本エントリーは、2005/1/5 公開された
    Guide for Fighting Comment Spam
    http://sixapart.com/pronet/comment_spam.html
以前に作成したものです。よって、Movable Type 本家による spam 対抗策も是非ご覧下さい。
追記: 新しい属性 rel="nofollow" を付加する plugin
    http://www.osbsd.net/archives/000068.php [公開日 2005/1/18]
==

Movable Type v3.14 とは、大量のスパムによるサーバ負荷を軽減するためのマイナーバージョンアップです。バージョンアップしてもコメントスパムが減るのではありません。しかも、世界の中で、数カ国がスパムを違法としても何ら解決しません。

Δ スパム送信元 IPアドレスによるコメント制御

(1) 設定 > 禁止IP (IP banning):
   デフォルト なし
(2) mt.cfg 設定変更:
   ThrottleSeconds デフォルト 20秒
(3) [MT]/lib/MT/ConfigMgr.pm の編集:
   CommentSessionTimeout デフォルト 1分

Δ スパム対策用プラグイン

(1) MT-Blacklist: comment spam,trackback spam 全般
   http://www.jayallen.org/projects/mt-blacklist/
Movable Type 3.14 に対応するバージョン [2004年12月22日 現在]

As part of the ongoing efforts against comment spam, Jay Allen has released Blacklist v2.03-beta. This release is designed to take advantage of the improvements in Movable Type 3.14, and the combination of the two is an excellent way to manage comment spam while not imposing too much of a burden on your web server.

(2)「日本語を含まないコメントを SpamとしてRejectする」プラグイン:
   Reject ASCII-only Comments (An example of Application-level Callback):
   Spamfilter Plugin, v.0.01
   Ogawa::Memoranda さんが公開されたplugin. インストールはごく簡単です。Movable Type 3.1から実装となったアプリケーション・レベルのコールバック機能を利用したものです。

Δ HTTP_REFERER による SPAM対策

ブログ管理者が許可したReferer リファラのないコメントやトラックバックを拒否する.
   リファラつきの Trackback に確認画面
   指定ページ (同意文書のあるページなど) やトップページへのアクセス後でなければ、フォーム入力・登録ができない動的ページに相当しますが、投稿者はコメントしたいとき操作がワンステップ増えることになります。

Δ 検索エンジン対策
(スパム実行のために、エントリーを一度取得させたり、いろいろ手間と時間がかかるようにする方法を含む) サーバー負荷を軽減させるための対策でもあります。

· mt-comments.cgi をリネームする
Movable Type 本家サイトや blog.bulknews.net などで紹介されている方法ですが、ブログ管理者にとっては (全くとはいいませんが、あまり) 意味がないことも周知のことです。しかし、
==
  (例) Google Rearch で、キーワード "⁄mt⁄mt-comments.cgi" を検索してみた [2004/12/23] 。
  結果: 約 2,110,000 件 ヒットした(国内外) 。
==
(例) http:⁄⁄www.example.com⁄mt⁄mt-comments.cgi?entry_id=170
と表示されることが多いので、エントリーのURLがわからなくても、コメントスパムプログラムであれば、直接スパム投稿可能であるのが現状です (ブログ管理者がSPAM受信拒否の対策を行っていなければ)。

· mt-comments.cgi を truncate url 表示とする
mt-comments.cgi の [URL] 表示を 下記のように canonical URL から truncate URL に変更するだけでも、直接的なスパム投稿 (全体数のこと) は一時的に減るのではないでしょうか。
Ogawa::Memoranda さんが公開された
mt-truncateurl.pl 0.01(2004.09.29): First Release
を使用し、個別エントリーのテンプレートにコンテナタグ <MTTruncateURL>  </MTTruncateURL>を挿入すると、
canonical url:

<form method="post" action="http:

⁄⁄www.example.com⁄mt⁄mt-comments.cgi" name="comments_form" onsubmit="if (this.bakecookie[0].checked) rememberMe(this)">

<input type="hidden" name="static" value="1" /> <input type="hidden" name="entry_id" value="59" />

truncate url:

<form method="post" action="⁄mt⁄mt-comments.cgi" name="comments_form" onsubmit="if (this.bakecookie[0].checked) rememberMe(this)">

<input type="hidden" name="static" value="1" /> <input type="hidden" name="entry_id" value="59" />

form action="truncate url ··· と、URLソースには 相対URLのみ表示されます。
      canonical (和訳:正準, 標準) , truncate (和訳:切り捨てる)

もちろん、Ogawa::Memoranda さんが本スクリプトを公開された目的は全く異なりますし(上記ページをご覧下さい) 、勝手に応用してもサーバ当たりの spam の全体数が一時的に若干減るだけかもしれません。
個々のブログ URLは、無料ブログやブログサーバの公開情報などからも簡単に入手できるので、トップページがわかれば、個別エントリーのURLはリンクを辿れば取得できます。その実例として、
   distanceさんのページをご覧下さい。
   http://distance.degle.net/blog/archives/2004/09/23_0457.html"
「GETでエントリーを一度取得している事から、おそらくパースしてhidden要素を含めPOSTしています。」とのコメント・スパム事例などから、

· 追加したhidden要素の有無で制限する
· GETによるコメント投稿を制限する
などのファイル編集による comment spam 対策にも当然、限界があります。
なお、
アメリカでがんばりましょう さんのページでは、「JavaScript をオンにした環境で、Submit ボタンを押したとき(onSubmit イベント時)に、隠しフィールドの値を設定すれば、人がボタンを押したときは正しい値が、コメントスパムプログラムが HTML だけ解釈して投稿したときは間違った値が送られる」新コメントスパムプログラム対策で成功しているようです [October 12, 2004. Movable Type 2.661版のブログにて].

また、きままにポロポロ さんのページでは、「全角文字」「句読点」「連続したひらがな」を含まないコメント投稿は受付けないように、mt-comments.cgi にそれぞれのコードを追加し、編集する方法が紹介されています。

スパム "SPAM" の語源
不特定多数のユーザーに対してメールを送りつける行為を スパム "SPAM" といいます。その語源は、(現実とは大いに異なり) とても面白いので、お伝えいたします。
⁄⁄ すずきひろのぶ著 「実践 Linux セキュリティー」 発行インプレス ⁄⁄ より、その一部を引用させていただきます。
SPAMは、もともと米 Hormel Foods 社の肉缶詰の商標で、イギリスのTV番組 「モンテパイソン」 で放映された有名なコントの1つに · · · · 大衆レストランでカップル客が料理の種類を尋ねたところ、すべてが SPAM 料理で、居合わせたお客が「スパム、スパム、スパム、スパム」と繰り返す歌を合唱する · · · · というものがあるそうです。 のちに · · · · アメリカの移民専門弁護士事務所から "アメリカ移民局労働ビザ抽選手続き代行" の広告が Usenet に流された · · · · Usenet 上で「しつこく繰り返し迫るのは、モンテパイソンの SPAM のコントと同じだ」とされました。これが SPAM の語源で、世界で最初の大規模なSPAMです。また、"SPAM 広告" のおかげで弁護士事務所は大もうけしたそうです。

LaunchBackgroundTasks mt-testbg.cgi

LaunchBackgroundTasks のデフォルト設定は、Movable Type 3.14 (英語版)となっても、リビルドなど時間を消費するタスクをバックグラウンドで実行しない "0" となっています。
    正確には、[MT]⁄lib⁄MT⁄ConfigMgr.pm のデフォルトは
    $mgr->define('LaunchBackgroundTasks', Default => 1);
    となっていますが、mt.cfg の初期設定
    LaunchBackgroundTasks 0 が優先となります。

Xrea.com さんのサーバでは、cgiなどによるタスクが連続30秒を越えサーバに過重な負荷が発生すると、Movable Typeに限らず強制終了となりますが、バックグラウンドなどの並列ジョブの実行は以前から可能でした。
LaunchBackgroundTasks 1
(または、mt.cfg 内の一行をコメントアウトする # LaunchBack··· )

しかし、レンタルサーバのスペックが高性能となった現在でも、今なおバックグラウンドタスクを実行できないものがあり、しばしばフリーズするときは、
WWWサーバーが並列ジョブ可能であるか? pfork() を利用した mt-testbg.cgi で確認します。本家サイトの supportフォーラムでは、クライアントに対する回答として、「ホストサーバ変更を推奨します」というものもあります。

旧バージョンの mt-testbg.cgiでは、
(例) mt-testbg.cgi,v 1.4.2.1 2004/05/13 00:57:40 ezra Exp $

if (MT->VERSION !~ /^3\.0/) {

    print "You have not yet upgraded to the 3.0 version of MT. Please do that before you run this script. Exiting...";

となっているので、使用中のMTのバージョンに編集後、ブラウザでアクセスし実行します。
最新バージョンの mt-testbg.cgiでは、
(例) mt-testbg.cgi,v 1.6 2004/08/17 00:39:56 ezra Exp $
MTのバージョンチェックは行われませんので、直ちに結果が表示されます。

If you see only one number below, or if you see two and they match, you should add the line
  BackgroundTasks 0
to the file mt.cfg.

MTバージョン3.14英語版 comment spam 対策など

【2004/12/20】Movable Type本家にて公開となった MTバージョン3.14英語版 (フルインストール版、アップグレード版) フォーマット形式 tar.gz について
comment spam によるサーバ負荷対策に伴うマイナーバージョンアップです。

本家ページ、および Ogawa::Memoranda さんのページ
http://as-is.net/blog/archives/000951.html
などの解説をご覧下さい。

フルインストール版: 英語版のバイナリーファイル(tar.gz) は、いつも問題なく展開できますが、MT3.14版では、インストール後の設定画面でスクリプトエラー表示となります (使用ブラウザ Microsoft社 IE6.0SP1)。また、3.12英語版 (3.121ではない)と同様に Language for Date Display: Czech (チェコ語) がデフォルトとなっているので、注意が必要です。

アップグレード版: スクリプトエラーは表示されませんが、日本語化のために重要なファイルの一部がバージョンアップしているので、アップグレードは日本語版公開まで待った方がよいと思います (しかし、現在 comment spam 攻撃を受けているサイト、特に有償版を購入したユーザーは、シックス・アパート株式会社さんへ日本語版の早期バージョンアップを催促された方がよいと思います)。本家サイト[12.22.2004]では、

Movable Type 3.14 is now available in French, German, Spanish, and Dutch! Check out the international Movable Type sites for more information.

【補足】 ファイルのバージョンなど
(日本語化に必須のファイルなど)

[mt]/lib/MT.pm
v.314-us MT.pm.pre,v 1.1.2.2.2.4 2004/12/20 19:25:03
v.3121-ja MT.pm,v 1.214 2004/09/30 01:01:13
v.3121-us MT.pm.pre,v 1.1.2.2 2004/10/21 01:02:59
v.312-us MT.pm.pre,v 1.1.2.1 2004/10/18 18:50:05
v.311-us MT.pm,v 1.211 2004/09/03 22:43:53
v.311-ja MT.pm,v 1.214 2004/09/30 01:01:13

[mt]/lib/MT/Mail.pm
v.314-us Mail.pm,v 1.22 2004/04/29 02:42:57
v.3121-ja Mail.pm,v 1.22 2004/04/29 02:42:57
v.3121-us Mail.pm,v 1.22 2004/04/29 02:42:57
v.312-us Mail.pm,v 1.22 2004/04/29 02:42:57
v.311-ja Mail.pm,v 1.22 2004/04/29 02:42:57

[mt]/lib/MT/App/Trackback.pm
v.314-us Trackback.pm,v 1.42 2004/10/01 18:26:04
v.3121-ja Trackback.pm,v 1.42 2004/10/01 18:26:04
v.3121-us Trackback.pm,v 1.42 2004/10/01 18:26:04
v.312-us Trackback.pm,v 1.42 2004/10/01 18:26:04
v.311-ja Trackback.pm,v 1.42 2004/10/01 18:26:04

[mt]/lib/MT/App/CMS.pm
v.314-us CMS.pm,v 1.385.2.6.2.1 2004/12/17 03:36:59
v.3121-ja CMS.pm,v 1.385.2.6 2004/10/19 19:27:46
v.3121-us CMS.pm,v 1.385.2.6 2004/10/19 19:27:46
v.312-us CMS.pm,v 1.385.2.6 2004/10/19 19:27:46
v.311-us CMS.pm,v 1.379 2004/09/03 22:29:34
v.311-ja CMS.pm,v 1.385.2.3 2004/10/09 01:14:14

以前のバージョン調査

MySQL 5つ PostgreSQL 5つ 合計最大10 のDB使用可

Xrea.comさんのサーバでは(有料広告免除サービス利用時)、複数のデータベースに対応しました。
開始日時: 2004年12月10日
データベース(MySQL/PostgreSQL)の使用については、
http://sb.xrea.com/showthread.php?t=8756
をご覧下さい。

ブログ blog の掲示板 BBS 化

新提案:ウェブログ著者(ユーザー)以外のクライアントに対して新規エントリーを制限付き許可するシステムを導入すると、掲示板として利用できるので、ご検討のほどよろしくお願いいたします。

試作ページ:
1) 送信フォームにて新規エントリー受付。メールアドレス取得、登録許可を管理側で決定。Kentさんの ASKA BBS をお借りしました。

     受付サイトで新規エントリーの送信 ⇒ http://www.osbsd.net/blog_bbs/index.xcg

2) ウェブログ著者(管理側) が採否決定、コメント。

     ブログサンプル ⇒ http://blog.so-net.ne.jp/novel/

現在、エントリーは自動ではありません。

ブログはメールによるエントリー投稿可能な新ブログツールを利用しました。以下は「So-net blog」の特徴と問題点です。なお、現在もベータ版?です。
ソニーコミュニケーションネットワークは独自のブログサービス「So-net blog」を開始しました (2004年11月24日)。
     http://arena.nikkeibp.co.jp/news/20041125/110154/
     http://blog.so-net.ne.jp/

携帯メールであれば、設定したメールアドレス(アカウントの変更自由)へ送信すると、新規エントリーとなります。
この機能を利用して、So-net blog を 掲示板 BBS 化することも可能です。
ただし、ベータ版では下記のように自動登録・設定されますので、ブログ管理者側でいくつかの編集が必要です。編集作業はパソコンのみ可能です。

自動登録内容
    Δ  カテゴリーの選択はできない(トップ登録したカテゴリとなる)
    Δ  共通テーマ moblog に自動登録され、タイトル、新規エントリーが公開される。
    Δ  トラックバック、コメントが許可される。

注意:「So-net blog」のスパマー対策は、残念ながら? Movable Type のような Type Key認証やIP Banning など一切ない。コメント、TrackBackを許可するクライアントは、無制限、So-net blog ユーザー内部、非許可の中からの選択となる。
よって、掲示板 BBS 化などに伴うアクセス制限はスパマー対策としても利用できると考える。

なお、So-netのユーザーIDを取得すると、So-net blog を無料で利用できます。ただし、無料で So-netのユーザーID を取得するためには、「こんてんつコース」への入会が必須で、この場合、ご本人名義のクレジットカードでの身元確認が行われます。

日記のようなホームページを簡単に作るために

一部の大手インターネットサービスプロバイダー( ISP )提供のホームページ(無料オプション)上では、ブログツール ( Movable Type など) は通常、作動しないサーバ設定・環境となっています。
"記事を自由に書き込んで、日記のようなホームページを簡単に作りたい、公開したい" インターネットの初心者の方は、
Blog サービス
参照ページ(例): http://bulkfeeds.net/app/faq.html
がとても便利です。
    So-net blog ⇒http://www.osbsd.net/archives/000057.php
さらに、ブログツール Movable Type などをインストールしたい方は、まず、レンタルサーバの試用をおすすめいたします。その理由は、以下のとおりです。
==
Movable Type 新規インストールのためには、下記の動作環境が必要とされています。
http://www.movabletype.jp/product_overview.shtml

· CGIスクリプトを実行できる
· Perlのバージョン5.004.5以上
· アップロードするためのFTPなどのプログラム
· JavaScriptとCookieが利用可能 (Windows、MacOS、UNIX/Linux)
· 4つのデータベース・システムの少なくとも1つが利用可能: Berkeley DB、MySQL、PostgreSQL、SQLite

大手 ISP 3社のWWWサーバ (契約時に無料で利用可能となるものに限る) について MTインストールの可否を調査した。確認のために、MTの mt-check.cgi をサーバ内にアップロードした。

plala さん
· wwwサーバ cgi不可
· cgi専用サーバ OS: linux Perl: 5.00503 DB_File: version 1.65
(但し、cgi専用サーバの容量上限は無料 5MBである)

hi-ho さん
· www,cgiサーバ兼用 OS: solaris Perl : 5.00601

so-net さん
· wwwサーバ cgi不可

結 果: 大手 ISP 3社との基本契約の範囲内では、Data Storage モジュールの1つ DB_File がインストールされているplalaさんの cgi専用サーバであれば、Berkeley DB を利用すると、MTは作動するかもしれないが、容量上限は無料 5MBであるので、有料オプションにて容量増設しないとインストール不能である (MT 3.11日本語版本体だけで バイナリーファイル展開後 5.28MB あり)。
結 論: Movable Type を使いたいとき、ISP のオプションサービス, アプリケーション・サービス・プロバイダー (ASP), レンタルサーバ会社との契約、自宅サーバ構築などの方法で、Movable Type を利用することになる。

レンタルサーバーについては Milano::Monolog さんのページにとても有益な情報があります。
  http://rebecca.ac/milano/install/

なお、Movable Type 3.11-ja 以降では、予約投稿のために cron ジョブ を使用できるサーバ環境( たとえば、 Xrea.com さんのサーバなど ) も必要となります。

php_flag register_globals Off and Movable Type 3.11, 3.12

Xrea.com さんのサーバーでは、PHP設定( php.ini ) register_globals On となっています。
Movable Type 3.11-ja では、スーパーグローバル変数 のみ使用しています。
.htaccess 内に下記の1行を追記し、セキュリティ上ハイリスクであるグローバル変数の使用を無効とします。

      php_flag register_globals Off

以下は簡単な解説です。
現在でも、EGPCS (Environment, GET, POST, Cookie, Server) 変数をグローバル変数として指定しないと作動しないサーバアプリケーションソフト (旧バージョンなど) がありますので、Xrea.com さんのサーバーなどでは、PHP設定ファイル php.ini にて、
      register_globals On
と、デフォルト Off (PHP 4.2.0以降) から On へ変更されています。これらの旧プログラムソフトをデフォルトの設定 register_globals Off のサーバ上で使用すると、ブラウザでアクセスしたとき、
   FATAL ERROR: register_globals is disabled in php.ini, please enable it!
などと表示されます。
しかし、本設定を有効 On にすると、セキュリティ上のリスクが多いので、
   http://www.sound-uz.jp/php/tips/security.html#01

PHP4.1.0 以降、セキュリティ上、安全な スーパーグローバル変数 ($_ENV、$_GET、$_POST、$_COOKIE、$_SERVER) の使用が可能となりました。

Movable Type 3.11-ja 以降、ダイナミック・パブリッシングによるPHPページ生成, PHP化が可能となりましたが、MTでは、グローバル変数ではなくスーパーグローバル変数の一部($_GET、$_SERVER など)が使用されています
よって、register_globals Off であっても作動しますので、Xrea.com さんなどのレンタルサーバでは、.htaccess を活用し、従来のグローバル変数使用を無効化することをおすすめいたします。

      php_flag register_globals Off
      php_flag track_vars On

の2行を .htaccess ファイルに追記し、WWWサーバ上のホームディレクトリ内などにアップロードします。
2行目の track_vars は、PHP 4.0.3以降の php.ini ではデフォルト onとなっているので、省略可能のようです。従来のEGPCS 変数は、グローバル連想配列 $HTTP_ENV_VARS, $HTTP_GET_VARS, $HTTP_POST_VARS, $HTTP_COOKIE_VARS, $HTTP_SERVER_VARS でそれぞれ参照するようになるとのことです(安全対策上)。

.htaccess ファイルにより SSL 接続のみ許可する方法

[追記 2008-01-20]
Coreserver.jpさんのサーバでは、共有SSLを利用したとき、ローカルIPアドレスは不定です。また、ドットファイル htaccess によるディレクティブ設定「SSLRequireSSL」も機能しないようです(HTTPSプロトコルでの接続も不可となります)。独自IPを購入取得し、独自ドメインをSSLサーバで運用すると、ディレクティブ設定「SSLRequireSSL」は有効となります。(・・・ここまで)

一般的には、
 <Limit GET POST>
 require valid-user

  SSLRequireSSL
  Satisfy all

 </Limit>
などの記述でよいのですが、
Xrea.comさんのサーバでは、SSLサーバのホスト名は ss1.xrea.com (グローバルIP 219.163.200.121) です。一般ユーザが SSL対応のブログページを公開するとき、契約サーバへのアクセスは、必ずSSLサーバからローカルIP経由となります。
サーバ間のローカルIP は、通常 192.168.1.* で、一部のサーバー(s86-s90など)では、IP 219.101.229.* も利用されています。
http://sb.xrea.com/showthread.php?t=8531&highlight=192.168.1

よって、独自ドメインのSSL接続 URL https:⁄⁄ のみ許可するときは、ディレクトリ内に下記(3行だけ)の htaccess アクセス制限ファイルをアップロードして下さい。
注: .htaccess は、ファイル名 (例) _htaccess などで作成し、独自ドメインのトップディレクトリ(index.html, index.rdf, index.xml, atom.xmlなどのあるフォルダ)内へFTPアップロード後に正しくリネームします。


Order deny,allow
Deny from all
Allow from 192.168.1 219.101.229

グローバルIPすべて拒否されますので、非SSL接続  http:⁄⁄ ではアクセスできません。
正しく設定した後もアクセスエラーとなるとき、ブラウザのキャッシュを一旦クリアしてからご確認下さい。

なお、下記のページも参照して下さい。
    AdminCGIPath: TypeKeyトークンを利用するコメント許可、SSL有効法
SSL接続によるURL(例)は下記 CGIPath のようになります。

    AdminCGIPath http://me.s**.xrea.com/mt/
    CGIPath https://ss1.xrea.com/www.example.com/mt/

    ファイル mt-*.cgiのみ GET (POST) によるアクセスを許可する方法

 SSL暗号通信による Movable Type について
トラックバック, Ping は https プロトコルをサポートしていませんので、エラーとなります。

SEO Movable Type 3.11 Dynamic Publishing

オンラインの検索エンジンロボットシミュレーター
h