お薦め ページ


メニュー

ハワイ島 遊覧飛行ツアー

ハワイ島 B&B・ホテル

ハワイ島 不動産情報

ハワイ島 情報・観光ガイド

ブログ(Blog)

その他

関連サイト

: 日付別 アーカイブ :

2005年12月25日 - 2005年12月31日

2005年12月31日

大晦日

今年の大晦日は、 仕事関係でお世話になっている方のお宅にお招きいただいた。 そのお宅には専用スタジオがあった。

初めて伺ったそのお宅は 旦那さんがミュージシャンで、 ひと部屋が専用のスタジオになっていた。 中には、 Fenderのスピーカ Mackie のミキサー 等、ところ狭しと並んでいた。 今回は他のゲストも居られたので、なかなか旦那さんとゆっくり話す機会がなかったが、 次回、もし、お招きいただいたらご自慢のサウンド・システムについてもっとよく伺ってみよう。

ここシリコンバレーでも、 大晦日に日本人が集まると、やることは決まっていて、 結局は、日本人とアメリカ人が入り混じって、 NHKの紅白を見ながらの年越しとなった。 ただ、どうしても 渡米してきた年代によって、 知っている歌手と知らない歌手がいて、 なかなか話がかみ合わないことがよくあった。 こんな年越しも、たまにはいいかもしれない。

カテゴリー: 個人ネタ     22:13 | コメント (0) | トラックバック (0)

2005年12月30日

MovableType のスパム対策(10) 「コメントスパム対策(9)」

前回の 『MovableType のスパム対策(9) 「コメントスパム対策(8)」 』からの続き。 MTCommentPreview用のテンプレート・タグを使って inputフィールドの初期値を設定してみたが、 結果はダメだった。その後の考察。

ここまでの実験結果をもう一度よく考えてみると、 inputフィールドに初期設定を行っているにも関わらず、 その値が消えてしまっていることになる。

通常、ブラウザーは送られてきたHTMLの内容を解析して その結果に従って画面を表示している。 この場合、ブラウザー側にバグがあることは考え難いし、 もし、ブラウザー側にバグがあれば、コメント本文の内容は引き継がれてこないことになってしまう。 ということは、 ブラウザーがHTMLの内容を解析して、きちんと初期値をフィールドに設定した後、 それが画面に表示されるまでのわずかな間に 誰かが、その値を消している(上書きしている)としか考えられない。 では、その「誰か」とは、 ブラウザー側で実行される別のプログラム、 つまり、「ブラウザー・サイド・スクリプト」、 この場合はJavaScriptの仕業としか考えられない。

そこで、もう一度よく MTCommentFields 部分の内容を確認してみると、 その中に
if (document.comments_form.email != undefined)
document.comments_form.email.value = getCookie("mtcmtmail");
if (document.comments_form.author != undefined)
document.comments_form.author.value = getCookie("mtcmtauth");
if (document.comments_form.url != undefined)
document.comments_form.url.value = getCookie("mtcmthome");
という記述がみつかった。 このスクリプトは、何をしているかというと、 comments_form という名前の入力フォームに email とか author とか url というフィールドが存在していたら、 それぞれのフィールドにクッキーからの値をセットする、 という内容になっている。 ちなみに、getCookie() という関数が別のところで定義されている。

クッキーからのデータを初期値として利用するのは、 確かに、最初のコメント画面、つまり、 では「Individual Entry Archive」では必要であるが、 そこから値が引き継がれるべき、
  • コメント・リストのテンプレート (Comment Listing Template)
  • コメント・プレビューのテンプレート (Comment Preview Template)
  • コメント・エラーのテンプレート (Comment Error Template)
では、クッキーからの値をセットしてはいけないハズである。

では早速とばかりに、そこで、MTCommentFields 部分 (ここでは「CommentFieldsTemplate」)から 上記 JavaScript の記述を削除してから、ページの再構築をしてみた。 実験の結果、今までの「名前」「メールアドレス」「URL」の 値が引き継がれない問題点が解決していた。

問題が解決したところで、最終的なまとめを次回にしてみよう。

カテゴリー: MTスパム     22:58 | コメント (0) | トラックバック (0)

2005年12月29日

MovableType のスパム対策(9) 「コメントスパム対策(8)」

前回の 『MovableType のスパム対策(8) 「コメントスパム対策(7)」 』からの続き。 コメント・スパム対策を行ってみたが、 コメントの「名前」「メールアドレス」「URL」がプレビュー画面に 引き継げない問題がおこった。それに対して、 MTCommentPreview用のテンプレート・タグを使って フィールドの初期値を設定してみたが、その結果について。

結果から言うと、やっぱりうまくいかない。 こんな簡単なことで解決できていれば、 既に、先人の方々が解決されていることだろう。

具体的な実験方法としては、 コメントを書き込む欄の「名前」「メールアドレス」「URL」に 値を入れてから、[確認]ボタンをクリックして 「コメントの確認 (Previewing your Comment)」のページへ行ってたのだが、 それぞれの項目は空白のままであった。

では、新しく埋め込んだ <$MTCommentPreviewAuthor$> や <$MTCommentPreviewEmail$>& の テンプレート・タグの 動作に問題がある可能性があるので、 それらを、inputタグの中ではなく、 通常のHTMLテキストの中に実験的に埋め込んでみると、 最初のコメントページで「名前」「メールアドレス」「URL」欄に 入力された値がちゃんと表示された。 つまり、これらのMTCommentPreview用のテンプレート・タグは 正常に動作していることがわかる。

また、逆に、
<input tabindex="1" id="author" name="author" value="テストの初期値" />
のようにテンプレート・タグでなく、通常のテキストを初期値として設定した場合は、 その値が消えてしまっていた。

さて、これは困った実験結果だが、 この後どうやってこの問題を解決してゆくべきか、 次回もう一度考えてみよう。

カテゴリー: MTスパム     22:26 | コメント (0) | トラックバック (0)

2005年12月28日

MovableType のスパム対策(8) 「コメントスパム対策(7)」

前回の 『MovableType のスパム対策(7) 「コメントスパム対策(6)」』 からの続き。 折角のコメント・スパム対策だが、細かな問題点が残ってしまった。 今回はその内容を解析してみよう。

まず、「針中野ミュージック」さんのページ の コメントフォームのソースコード にある「名前」「メールアドレス」「URL」そして「コメント」についての フィールド記述をそれぞれみてみる。

名前:
<input tabindex="1" id="author" name="author" />
メールアドレス:
<input tabindex="2" id="email" name="email" />
URL:
<input tabindex="3" type="text" name="url" id="url" />
コメント:
<textarea tabindex="4" id="text" name="text" rows="10" cols="50"><$MTCommentPreviewBody sanitize="a href"$></textarea>

となっている。これを見て気づくのは、最後のコメント用のフィールド定義には、 フィールドの初期値として MovableTypeのテンプレート・タグである <$MTCommentPreviewBody sanitize="a href"$> が記述されていることである。 ということは、MovableTypeの「名前」「メールアドレス」「URL」ようの タグも存在するのではないか、と推測できる。 そこで、調べてみると、 Movable Type ユーザマニュアル: テンプレート・タグ の コメントのプレビュー のページに、以下のタグがあることが書いてある。
  • MTCommentPreviewAuthor
  • MTCommentPreviewIP
  • MTCommentPreviewAuthorLink
  • MTCommentPreviewEmail
  • MTCommentPreviewURL
  • MTCommentPreviewBody
  • MTCommentPreviewDate
と言うことは、これらのMovable Typeのタグを使って、 各フィールドの値を初期化してやれば問題は解決できそうである。 では早速とばかりに、「名前」「メールアドレス」「URL」の それぞれの<input>タグを

名前:
<input tabindex="1" id="author" name="author" value="<$MTCommentPreviewAuthor$>" />
メールアドレス:
<input tabindex="2" id="email" name="email" value="<$MTCommentPreviewEmail$>" />
URL:
<input tabindex="3" type="text" name="url" id="url" value="<$MTCommentPreviewURL$>" />

の様に変更してから試してみた。 さてその結果は、というと、次回のお楽しみとさせていただこう。

カテゴリー: MTスパム     22:50 | コメント (0) | トラックバック (0)

2005年12月27日

MovableType のスパム対策(7) 「コメントスパム対策(6)」

前回の 『MovableType のスパム対策(6) 「コメントスパム対策(5)」』 からの続き。 「hidden属性の変数」によるコメントスパム対策を MovableType バージョン3以降でもできるような設定が完了した。 さて、その動作テストしてみた結果はと言うと。

結果は、 正規のコメントの投稿は正常に動作しているし その後、実際のスパムの数も大幅に減少した。 まずは成功と言える。 参考にさせていただいたサイト様にはお礼を申し上げたい。

しかし残念ながら、細かな部分に問題が残った。 具体的に言うと、 コメントの投稿の際、 名前、メールアドレス、URL、コメント、 それぞれの項目が全て正常に入力されている状態から 直接[投稿]ボタンをクリックした場合は、問題なく投稿できる。 しかし、[確認]ボタンをクリックして 「コメントの確認 (Previewing your Comment)」のページへ行ったり、 または、名前、メールアドレスの入力が不適切で 「コメント登録のエラー (Comment Submission Error)」の画面に行ってしまった場合、 入力されていた項目の内容が引き継がれてこないで 欄が空白になってしまうのである。 変更前は各項目の内容が引き継がれていた。

これに関して、今まで参考にさせていただいた 「針中野ミュージック」さんのページ に寄せられているコメントに
コメントを記入して「確認」を押しプレビューに飛ぶと、 「名前」「メールアドレス」「URL」が空になってしまっているのですが これは僕の環境がわるいのかな。。??
というカキコがある。そして、そのお返事として
ご指摘ありがとうございます。 おっしゃるとおり、現在はクッキーを使わないと、 「名前」「メールアドレス」「URL」がプレビューに 反映されない不具合が出ています。 こちらでも調査しており、 他の方からのアドバイスも受けて修正してみたりもしていますが、 未だ解決しておりません。

この方法が突破されてからその調査もストップしていたのですが、 まだまだこの方法を活用して下さる方もいらっしゃるようですので、 問題解決に向けて調査を続行しようと思います。
とある。 しかしその後、この問題は解決はされていないようである。 折角ここまで来たので、何とか解決できないものか、 問題点を解析してみようと思う。

カテゴリー: MTスパム     21:58 | コメント (0) | トラックバック (0)

2005年12月26日

MovableType のスパム対策(6) 「コメントスパム対策(5)」

前回の 『MovableType のスパム対策(5) 「コメントスパム対策(4)」 』から、 問題の <MTCommentFields> の コメントフォームへの置き換えについての続き。

前回のエントリーまでで、3つのコメント用テンプレートの修正が 終了したことになる。 それから、忘れていけないのが、 「個別エントリーアーカイブ(Individual Entry Archive)」の修正。
<input type="hidden" name="entry_id" value="<$MTEntryID$>" />
と書いてある行が2箇所あるはずなので、その両方の直後に、 「女子十二月号」さん のダミー変数の指定方法方法
<input type="hidden" name="spammer" value="goaway" />
<input type="hidden" name="spamming" value="gotohell" />
を追加することにする。

ここでの注意点についても 「針中野ミュージック」さんのページ から引用させていただくと、
ここでご注意。こちらの新しいテンプレートモジュールも、 そして普通に修正する「個別エントリーアーカイブ」も、 該当する箇所は2箇所ずつあります。 できればエディタの「検索」あるいは「置換」で 2箇所ともばっちり追加(修正)しておきましょうね。
さらに
以上の改造を施して、サイトを再構築したのち、 一旦ふつうにコメントがつけられるかどうかをテストしておきましょう。 ただし、現段階ではまだコメントスパム対策はできていません。 仕上げの「mt-comments.cgi」改造が必要です。
そのCGI改造方法を「女子十二月号」さんのページ から引用させていただくと、 「mt-comments.cgi の "use strict;" 文のすぐ下に以下を追加する」とある。
use CGI qw(:standard);
if ($ENV{'REQUEST_METHOD'} eq "POST") {
my $data = param('spammer');
die unless ($data);
}
use CGI qw(:standard);
if ($ENV{'REQUEST_METHOD'} eq "POST") {
my $data = param('spamming');
die unless ($data);
}
ここまでの変更を行った後、 サイトの再構築を行えば完成のハズである。 また、テスト方法についても既に書かれており、
この改造を施した mt-comments.cgi をアップロードしたら、 コメントがちゃんとできるかどうか動作確認してください。 少なくとも、コメントのプレビューを見ないですぐ投稿、 とプレビューを見てから投稿、の2通りは最低確認しましょう。
とある。 では、実際の動作を試してみた結果については 次回のエントリーにしよう。

カテゴリー: MTスパム     22:41 | コメント (0) | トラックバック (0)

2005年12月25日

MovableType のスパム対策(5) 「コメントスパム対策(4)」

前回の 『MovableType のスパム対策(4) 「コメントスパム対策(3)」 』からの続き。 「hidden属性の変数」によるコメントスパム対策の MovableType バージョン3以降対策の具体的な設定方法について。

問題の <MTCommentFields> は コメントフォームに置き換えればよさそうだ、 ということまではわかったが、 対応しなければならないテンプレートは、
  • コメント・リストのテンプレート (Comment Listing Template)
  • コメント・プレビューのテンプレート (Comment Preview Template)
  • コメント・エラーのテンプレート (Comment Error Template)
の3つであり、 それらそれぞれに 長たらしい同じコメントフォームの記述を 埋め込むのは効率的ではない。 その点に関しては、「針中野ミュージック」さんもご指摘されており、
そして。同じフォームのコピペするくらいなら、 MovableTypeだけにもっと賢い方法があるでしょう♪ そ・れ・は テンプレートモジュール!
とおっしゃられている。 このテンプレートモジュールの設定方法について、 「針中野ミュージック」さんページを参考にしながら、 私なりのやり方をご紹介させいただく。

MovableType管理画面のテンプレートのページを開いて、 テンプレート・モジュール(Template Modules)の セクションにある 英語版なら「Create new template module」 日本語版なら「新しいテンプレート・モジュールを作る」 というリンクをクリックする。 すると新しいテンプレートを登録できる 「テンプレートの編集(Edit Template)」 という画面になる。

「テンプレートの名前(Template Name)」欄に このテンプレートの名前を打ち込む。 ここでは、「CommentFieldsTemplate」としてみた。

その下の 「モジュールの中身(Module Body)」欄に 「針中野ミュージック」さんのページ にある コメントフォーム をコピー&ペーストする。
【ご注意】
後述のとおり、こちらの コメントフォーム には別の問題点がありました。 その問題への対応版コメントフォームを後ほど掲載する予定です。
それから、「針中野ミュージック」さんのサイトにあるものから 少し変更させていただき、 ダミー変数の指定方法を「女子十二月号」さんの方法
<input type="hidden" name="spammer" value="goaway" />
<input type="hidden" name="spamming" value="gotohell" />
に準じた記述に変更させていただいた。

次に、先ほどの3つのテンプレートにある 「<MTCommentFields>」 もしくは 「<MTCommentFields preview="1" static="1">」 と書かれている部分を、
<$MTInclude module="CommentFieldsTemplate"$>
と書き換える。

これで、デフォルトの <MTCommentFields> の代わりに、 オリジナルのコメントフォーム(テンプレートモジュール)が適用されようになる。 で、その次は、っと、続きは次のエントリーとさせていただこう。

カテゴリー: MTスパム     22:11 | コメント (0) | トラックバック (0)

 
ハワイ島での遊覧飛行ツアーとB&Bのスペシャリスト、スカイメリカ
Copyright © 2003,2009 Skymerica Corp. All rights reserved.