お薦め ページ


メニュー

ハワイ島 遊覧飛行ツアー

ハワイ島 B&B・ホテル

ハワイ島 不動産情報

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

ブログ(Blog)

その他

関連サイト

: 日付別 アーカイブ :

2005年12月30日

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)

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