2007年3月15日
MTのトラックバック/コメントスパムを防ぐ対策
最近は、トラックバックやコメントのスパムがやたらと多くて
日々削除するだけでも結構大変だ。
MTではトラックバックやコメントのスパムを
ブロックしてくれる機能が付いているのだが、
それは実際にはデータベースに登録されていて
表示するのを一旦止めているというような状態だ。
そうなると、ほっとくとどんどんたまっていくわけさ。
それを削除するのも結構面倒。
たまにブロックされないものもあるし。
そんなわけで、2つの対策を試した。
1つ目は、トラックバックやコメントのCGIの名前を変更するという対策。
mt-tb.cgi を mt-tb2.cgi に、
mt-comments.cgi を mt-comments2.cgi というようにファイル名を変更し、
mt-config.cgi 中の CommentScript と TrackbackScript のファイル名の箇所を
そのファイル名に変更すればOKだ。
サーバにアップロードしたらブログを再構築。
これには結構効果があって、トラックバックスパムはさっぱり来なくなった。
トラックバックの URI がスパム送信用のツールに登録されてたってことなんだろうな~。
だが、コメントスパムは、数はかなり減ったものの、
サイトに直接入力されれば防げない。
そんなわけで、2つ目の対策。
「日本語を含まないコメントテキストのブロックプラグイン」を導入してみた。
これは、日本語を含まないコメントが投稿された場合、
コメントが成功したフリをするというものということです。
これが効果テキメン!
さっぱりコメントスパムが来なくなりました。
めでたし、めでたし。
≪ "MTのトラックバック/コメントスパムを防ぐ対策"の続きを隠す投稿者 ponpon : 00:30 | コメント (0) | トラックバック(0) | 【カスタマイズ】
2006年1月19日
コメントスパムの対策をしてみた
昨年末あたりから、やたらとコメントスパムの被害にあっていた。
最初は、2~3コメント程度が1日にあるか無いかくらいだったので、
こまめにメンテナンスすればいいかなくらいに思っていた。
今年になってからは、毎日、多い日には100件くらいのコメントスパムが
来るようになり、さすがに嫌気がさしてきて、
コメントスパムへの対策を練ることにした。
そこで思い浮かんだのが、「CAPTCHA」だ。
(Completely Automated Public Turing Test to Tell Computers and Humans Apart の略)
キャプチャと読むようだ。
簡単に説明すると、
「人には容易だが、コンピュータにとっては困難な入力を要求する」のだ。
絵を見て連想する言葉を入力するとか。
下の図は、Yahoo! でユーザ登録時に表示される Captcha である。

Google でも使われているらしい。
また、TypePad でも使用されていた。
私は、私のブログに気軽にコメントを寄せられるようにする為、
メールアドレスやURLは必須入力にしていないし、今後も当面は必須にするつもりはない。
投稿されたコメントも、私の確認無しで反映されるようにしてある。
ま、そういうわけで、スパムの標的となっちゃったわけだけど、
毎回アクセスして手入力しているならまだしも、
ボットで投稿してくるのでさすがに腹が立つ。
ならば、ボットで投稿出来ないようにしてしまえ!というわけです。
Captcha で検索するといろいろ出ますよ。
しかし、急ぎ対応したい状況であった為、日本語の、参考になりそうなサイトを探しました。
で、参考にしたのが、
ginzi.com/blogさんの
コメントスパム対策にセキュリティーコード 「MT-SCode」 を付けてみた!w
と
小粋空間さんの
MT-SCode プラグインによるコメントスパム対策(その1)
です。
解説を書き出すと長くなりそうなので、次回にします。
急ぎの方は上記サイトを参考にしてください。
で、効果の程はというと・・・
コメントスパムが来なくなりました~!!!
なんとすばらしい。
しかし、Yahoo! などのように、グニャ~と曲がった文字が表示されたほうが
かっこいいような気がするので、研究してみようかなと思ったりした。
今年の目標のひとつにしてみよう。
その他、Captcha について参考になりそうなサイトを備忘録がてら記載しておく。
.NET とAIでスパムボットに対抗する(1)
The CAPTCHA Project.
Captcha - Wikipedia
投稿者 ponpon : 22:20 | コメント (0) | トラックバック(0) | 【カスタマイズ】
2005年7月 3日
月送りカレンダー
月も替わり、7月となりました。
ふとカレンダーを見ると、7月が表示されているのだけど、
前月のカレンダーは見れず・・・
MTの初期状態では、カレンダーは当月のものが必ず表示されます。
その月にエントリーが無くてもね。
月が替わった時にエントリーが無いことって、これからも何度もありそうです。
これは不便だな~と思ったので、いろいろ探してみました。
参考にしたのは、小粋空間さんのエントリー「月送りカレンダー」と
「月送りカレンダー・1日に表示されなくなる不具合を改善」です。
「月送りカレンダー」のみでは、当月のエントリー等が未入力の場合にエラーになってしまい、
困っていた時に不具合改善分を見つけたので、一緒に実施しました。
ちなみに、以下のソースではPHP化されていることが前提となります。
PHP化していない人は、以下のソースの .php の部分を .html (または .htm )に変更すると良いと思います。
1.ディレクトリ作成
このカスタマイズでは、カレンダーは別ファイルとして独立することになるので、
まずは専用のディレクトリを作成します。
archive ディレクトリに新たに calendar ディレクトリを作成します。
2.カレンダー用のスタイルシート作成
MTの管理メニューから、「テンプレート」→「インデックステンプレート」右の「新しいインデックステンプレートを作る」をクリック。
次の画面で下記のように設定します。設定が終わったら「保存」をクリックです。
テンプレートの名前:style-calendar
出力ファイル名:calendar.css
テンプレートの中身:
body {
background: #ffffff;
margin: 0px 0px 0px 0px;
}
#links {
float: center;
background: #ffffff;
}
#links a {
color: #8FABBE;
text-decoration: none;
}
#links a:hover {
color: #006699;
text-decoration: underline;
}
.calendarhead {
text-align: center;
font-family: Verdana, Arial, sans-serif;
font-size: 9px;
color: #666666;
letter-spacing: .3em;
}
.calendar {
font-family: Verdana, Arial, sans-serif;
color: #666666;
font-weight: normal;
letter-spacing: normal;
text-decoration: none;*/
background: none;
}
.calendar th {
font-size:8px;
width : 20px ;
}
.calendar td {
font-size:9px;
}
.calendar table {
padding: 0px;
border-collapse: collapse;
}
3.カレンダー用アーカイブテンプレートを作成
MTの管理メニューより「テンプレート」→「アーカイブに関連したテンプレート」の
「新しいアーカイブテンプレートを作る」をクリックします。
次の画面で下記のように設定します。設定が終わったら「保存」をクリックです。
テンプレートの名前:カレンダー
テンプレートの内容:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<$MTPublishCharset$>" /><title><$MTBlogName$></title>
<link rel="stylesheet" href="<$MTBlogURL$>calendar.css" type="text/css" />
<MTBlogIfCCLicense>
<$MTCCLicenseRDF$>
</MTBlogIfCCLicense>
</head>
<body >
<div id="links">
<div class="calendar">
<table summary="Monthly calendar with links to each day's posts">
<caption class="calendarhead">
<MTArchivePrevious>
<a href="<MTBlogURL>archives/calendar/<MTArchiveDate format="%Y/%m/index">.php"><</a>
</MTArchivePrevious>
<$MTArchiveDate format="%B %Y"$>
<MTArchiveNext>
<a href="<MTBlogURL>archives/calendar/<MTArchiveDate format="%Y/%m/index">.php">></a>
</MTArchiveNext>
</caption>
<tr height="15">
<th abbr="Sunday" align="center" valign="bottom"><span class="calendar"><font color="#e50003">Sun</font></span></th>
<th abbr="Monday" align="center" valign="bottom"><span class="calendar">Mon</span></th>
<th abbr="Tuesday" align="center" valign="bottom"><span class="calendar">Tue</span></th>
<th abbr="Wednesday" align="center" valign="bottom"><span class="calendar">Wen</span></th>
<th abbr="Thursday" align="center" valign="bottom"><span class="calendar">Thu</span></th>
<th abbr="Friday" align="center" valign="bottom"><span class="calendar">Fri</span></th>
<th abbr="Saturday" align="center" valign="bottom"><span class="calendar"><font color="blue">Sat</font></span></th>
</tr>
<MTCalendar month="this">
<MTCalendarWeekHeader><tr></MTCalendarWeekHeader>
<td align="center"><span class="calendar">
<!--追加--><MTCalendarIfToday><b></MTCalendarIfToday><!---->
<MTCalendarIfEntries><MTEntries lastn="1">
<a href="<$MTEntryLink archive_type="Daily"$>" title="[<$MTEntryTitle$>]" target="_top">
<$MTCalendarDay$></a>
</MTEntries></MTCalendarIfEntries>
<MTCalendarIfNoEntries><$MTCalendarDay$></MTCalendarIfNoEntries>
<!--追加--><MTCalendarIfToday></b></MTCalendarIfToday><!----></span>
<MTCalendarIfBlank> </MTCalendarIfBlank>
</span></td>
<MTCalendarWeekFooter></tr></MTCalendarWeekFooter>
</MTCalendar>
</table>
</div>
</div>
</body>
</html>
4.ファイルの関連付け
MTの管理メニューより「ウェブログの設定」→「アーカイブの設定」の
「新しく、テンプレートとアーカイブを関連付ける」で下記のように設定します。
アーカイブの種類:月別(またはMonthly)
テンプレート:カレンダー
設定後、「保存」をクリック。正常に保存されると「月別」の欄に
カレンダーのテンプレートが追加されます。
追加された部分に下記のように設定します。
ラジオボタン:日付アーカイブ(またはDate-Based Archive)のまま
アーカイブ・ファイルのテンプレート:
5.カレンダーの設置
「テンプレートの編集」 でカレンダーを表示するテンプレートのカレンダー表示用タグを削除し、
下のタグ(青色)と入れ替えてください。
ちなみに、削除するカレンダー表示用タグはデフォルトではこんなのでした。
<table summary="投稿されたエントリーへのリンク付き月間カレンダー">
<caption><$MTDate format="%B %Y"$></caption>
<tr>
<th abbr="日曜日">日</th>
<th abbr="月曜日">月</th>
<th abbr="火曜日">火</th>
<th abbr="水曜日">水</th>
<th abbr="木曜日">木</th>
<th abbr="金曜日">金</th>
<th abbr="土曜日">土</th>
</tr>
<MTCalendar>
<MTCalendarWeekHeader><tr></MTCalendarWeekHeader>
<td><MTCalendarIfEntries><MTEntries lastn="1"><a href="<$MTEntryPermalink$>"><$MTCalendarDay$></a>
</MTEntries></MTCalendarIfEntries>
<MTCalendarIfNoEntries><$MTCalendarDay$></MTCalendarIfNoEntries>
<MTCalendarIfBlank> </MTCalendarIfBlank></td>
<MTCalendarWeekFooter></tr></MTCalendarWeekFooter>
</MTCalendar>
</table>
</div>
この部分を下記のように変更します。
最初は念の為に、上記のカレンダー表示用タグの最初に<!--
最後に --> と記述し、表示されないようにしておくと、
エラーの時に元に戻すのが楽になります。
$path = 'path';
$url = '<$MTBlogURL$>';
$year = '<$MTDate format="%Y" $>';
$month = '<$MTDate format="%m" $>';
$filename = 'index.php';
$src = "";
$file = 'archives/calendar/' . $year . '/' . $month . '/' . $filename;
if (file_exists($path . $file)) {
$src = $url . $file;
} else {
for ($i = 0; $i < 11; $i++) {
if ($month != '01') {
$month--;
$month = substr('0'. $month, -2);
} else {
$year--;
$month = '12';
}
$file = 'archives/calendar/' . $year . '/' . $month . '/' . $filename;
if (file_exists($path . $file)) {
$src = $url . $file;
$flag = 1;
break;
}
}
}
?>
<div align="center" class="side">
<iframe name="cal-iframe" src="<? print $src; ?>" width="150" height="115" scrolling="no" frameborder="0" marginwidth="0" marginheight="0"></iframe>
</div>
path にはサイトのフルパスを記入します。
例えば、"/home/blog"ってなかんじに。
ロリポップサーバーの場合は、ユーザ情報の確認をするとわかりますよ。
後は、保存して再構築すればOK!です。
≪ "月送りカレンダー"の続きを隠す投稿者 ponpon : 23:37 | コメント (0) | トラックバック(1) | 【カスタマイズ】
2005年6月30日
あれこれポップアップ
MT専用のカスタマイズというわけではないのだけど、
ブログのデザインをよく出来るので紹介します。
ありみかさとみさん作のあれこれポップアップといいます。
このあれこれポップアップを、ブログに導入している人も結構いて、
どうやってるのかなぁ~ってソースを見ていて見つけました。
まず、あれこれポップアップのサイトで、ファイルをダウンロードし、解凍します。
cssファイルとjsファイルがあるので、それらをテンプレートから参照するように設定します。
MTの管理メニューから、、「テンプレート」を選択し、あれこれポップアップを表示したいテンプレートを選択します。
テンプレートに下記のソースを追加します。
追加する場所はどこでも良いけども、テンプレートでスタイルシートを参照している箇所の付近とかが良いと思う。
<head></head>タグの間とかね。
<SCRIPT SRC="./ArekorePopup/ArekorePopup.js" TYPE="text/javascript"></SCRIPT>
最後の仕上げに、自分のエントリーにある<a>タグにtitle属性を追加し、
そこに表示したい内容を記入します。
前回のエントリーで、このあれこれポップアップ用にtitle=""を追加していたのでした。
他にはエントリータイトルからリンクさせる方法を、
<a href="<$MTEntryPermalink valid_html="yes"$>" title="<$MTEntryTitle$>"><$MTEntryTitle$></a></h3>
と変更もしてみた。
詳しい設置方法とかは上記のサイトやダウンロードしたファイルに説明があるので省略。
投稿者 ponpon : 22:28 | コメント (0) | トラックバック(0) | 【カスタマイズ】
2005年6月28日
ハイパーリンクのカスタマイズ
エントリーの投稿画面のカスタマイズです。
エントリーを書いている時に、よく文字にリンクを貼りますよね。
← こんなボタンのやつです。
少し使っていて、なんとも使い勝手の悪い機能だなぁ~と思いました。
デフォルトだとリンクのターゲット(開く場所)が現在のウィンドウなんですよね・・・
私としては新規ウィンドウで開いて欲しいのだけど、
毎回書き加えるのも面倒だし・・・
というわけで、改良してみることにしました。
他の人もやってるかもしれないけど、これはどこも参考にせずにカスタマイズしちゃいました。
mt.cgiと同じフォルダにあるmt.jsの170行目付近にある
function insertLink (e, isMail) {・・・}
内にある、
っていう部分を
に置き換えるだけです。
あとはアップロードして、すでに編集画面を開いているなら再読み込みすればOK!
target="_blank"
で新規ウィンドウで開く。
title=""
はリンクにマウスカーソルを合わせると表示される説明文とかを記述できます。
記述しないと何も表示されないですが、不要だと思う人はこの部分は削除して、
でも良いでしょう。
私のサイトでは非常に意味があるのでこの部分を加えています。
↑のリンクにマウスを合わせて少し待つと・・・
それの説明は次回。
≪ "ハイパーリンクのカスタマイズ"の続きを隠す投稿者 ponpon : 22:19 | コメント (0) | トラックバック(0) | 【カスタマイズ】
1 | 2 | 3 |全部読む