スパムボットによる検索フォームへの爆撃対策

Posted by
ぴろり
Posted at
2007/06/04 19:35
Trackbacks
関連記事 (0)
Post Comment
コメントできます
Category
MovableType カテゴリ

 MovableType の管理画面からログを見ると、検索フォーム宛に大量のコメントスパムが撃ち込まれているのに気が付きました。最近のコメントスパムはフォームと見ると見境なしに POST してくるようです。
 意味のない検索が実行されるだけで、スパムコメントを残されるなどの目に見える実害はありませんが、検索 CGI が連続して呼び出されることでサーバ負荷が高くなるという心配があります。そこで、以前に公開したのと同様の方法で、JavaScript を用いて検索 CGI への爆撃対策をしてみました。

この記事を Delicious に追加する   このエントリーをはてなブックマークに追加  

 一般的なスパムボットは HTML 中の JavaScript を処理できないことを利用して、JavaScript を用いて検索フォームが POST される時に呼び出される CGI 名を隠蔽しています。

いずれJavaScriptを解析できるような高性能なスパムボットが登場するまでは効果てきめんです。

<h2>記事検索</h2>
<form name="searchbox" method="post" action="/htdoc/403.php">
<input type="hidden" name="IncludeBlogs" value="<$MTBlogID$>" />
<input type="hidden" name="SearchElement" value="entries" />
<input type="hidden" name="SearchSortBy" value="created_on" />
<input type="hidden" name="ResultDisplay" value="descend" />
<input type="hidden" name="SearchCutoff" value="65536" />
<input type="hidden" name="MaxResults" value="50" />
<input id="search" name="search" size="20" value="<$MTSearchString decode_url="1" encode_html="0"$>" />
<input type="submit" value="検索" />
</form>
<script language="JavaScript" type="text/javascript">
document.searchbox.action = [ "<$MTCGIPath$>", "<$MTSearchScript$>" ].join("");
</script>
<noscript>
検索機能を利用するにはブラウザのJavaScriptを有効にしてください。
</noscript>

 フォームの action 属性にはエラーとなるファイルを指定しておき、JavaScript を用いて正しい検索 CGI を呼び出せるように action を書き換えています。
 PC用のブラウザであれば特に問題なく機能しますが、その一方で JavaScript に対応していないテキストブラウザや携帯電話には不便を強いることになります。サイトの特性やユーザの使用状況を考慮した上で適用くださいませ。

この記事を Delicious に追加する   このエントリーをはてなブックマークに追加  


この記事を読んだ人はこんな記事も読んでいます記事リコメンデーションについて

カバー画像:JavaScript を使ってスパムによる CGI の過負荷を防ぐ

関連記事/トラックバック

関連記事/トラックバックはまだありません

この記事にトラックバックを送るには?

コメントを投稿する

 
 (必須, 匿名可, 公開, トリップが使えます)
 (必須, 匿名可, 非公開, Gravatar に対応しています)
 (必須)
スパム コメント防止のため「投稿確認」欄に ランダムな数字 CAPTCHAについて を入力してから送信してください。お手数ですがご協力のほど宜しくお願いいたします。