daemonfreaks.com

pyblosxomのSVN trunkにcheck_javascriptプラグインが追加されてた!

posted by jun-g at Fri, 15 Dec 2006 03:30 JST

昨日、pyblosxomのSVN trunkにcheck_javascriptプラグインが新たに登録されてた。どうもJavaScriptを利用したコメントスパム対策用のプラグインみたい。という事は、こいつを利用すればMagicWordプラグインは不要、さらにtrackbackプラグインへの修正も不要って事かー!ムホムホ!!という事で早速試してみた。

まずはいつも通りcheck_javascript.pyをpluginsディレクトリにコピーして、config.pyを編集してプラグインがロードされるように設定。そして、コメントフォーム用のflavourであるcomment-form.htmlを、trunkの雛型を参考にして以下の通り修正。

--- comment-form.html.orig	Sun Oct 15 02:59:40 2006
+++ comment-form.html	Fri Dec 15 03:00:11 2006
@@ -3,7 +3,7 @@
 <div class="blosxomCommentForm">
 <form method="post" action="$base_url/$file_path.html#commentMessage" id="comments_form">
 <fieldset>
-<input type="hidden" name="secretToken" value="pleaseDontSpam" />
+<input type="hidden" name="secretToken" id="secretTokenInput" value="pleaseDontSpam" />
 <input name="parent" type="hidden" value="$file_path" />
 <input name="title" type="hidden" value="$title" />
 <label class="commentForm">Name</label><br />
@@ -21,6 +21,11 @@
 <input name="submit" type="submit" value="Post" />
 </fieldset>
 </form>
+<script type="text/javascript"><!--
+// used by check_javascript.py. this is almost entirely backwards compatible,
+// back to 4.x browsers.
+document.getElementById("secretTokenInput").value = "$blog_title";
+//--></script>
 </div> <!-- ends blosxomCommentForm div -->
 </div>
 </div> <!-- ends blosxomComments div -->

パラメータ「secretTokenInput」の値にJavaScriptで$blog_titleの値を設定し、プラグイン側のcb_comment_reject()で値をチェックする、という仕組みらしい。お手軽やね。あ、でもJavaScript使うって事は、テキストブラウザや古いブラウザからはコメント投稿できないって事かー!ま、いいか。

という事で、簡単さに惹かれてこいつを導入する事に決定。効果の程はこれいかに。