MTでは、コメントの受信を動作させていると「いずれコメントを利用したスパムの標的にされる可能性がある」とは見聞きしてました。
それらスパムが届き始め、結構な量になりつつあるので対策を施す事にしました。
プラグインのDL・UL
■Daryl's HomePage: 日本語を含まないコメントテキストのブロックプラグイン
上記よりプラグインをDLしたら
MTルート/plugins にUL。
効能
comment->textに日本語を含まない場合、一見コメントが成功したフリをしてリターンするだけです。
今のところ、うちに届いてるスパムは英字ばっかりなのでとても期待出来ます。
トラックバックスパム防策時のプラグインを利用する
効果があるかどうかは判りませんが、「ロボットに判読し辛くする」という観点から、コメント入力フォーム部のformタグ部分にも修正を行ってみます。
この変更を行う際に必要なプラグインは、以下で解説してます。
以下の部分を
<form method="post" action="<$MTCGIPath$><$MTCommentScript$>"~
以下のように変更します。
<form method="post" action="<$MTCGIPath doentity="1"$><$MTCommentScript doentity="1"$>"~
スパムは、そのURLが判別出来ないとしても、MTのcomment.cgiを直接ノックする可能性もあるのではないかな?という観点から上記を行ってみました。
その他スパム対策
エントリーアーカイブ内にあるRDF情報は、いったい何に利用されてるのか判らず気になっていたのですが、これはどうやら、トラックバックURL等の情報を「機械的に読み取り利用する」ためのもの、であるらしいです。
- リンクを貼った時、自動でトラックバックを送る機能に利用
- クイック投稿機能を使用する際に利用
そして、このRDF情報を出力している<$MTEntryTrackbackData$>内には、トラックバックURLが記述されてます。
なので、これを削除する事はスパマーからの標的から逃れる可能性が高くなるみたいです。
「自動送信機能」がどこで設定されるのかというと、新規投稿の設定には「トラックバック自動検地」という項目があるので、ここで利用設定を行うのでしょう。
エントリー内に外部に対してリンクを貼った場合、この設定が有効な場合は、そのリンク先を調べてトラックバックURLを検地し、そこに対して自動でPingする、といった具合です。
なので、この自動検知はMovabletypeの場合、上記のRDFからその場所を判断する可能性が高いため、これを削除する事がスパム軽減に繋がる、との判断です。
(ながーい)あとがき
JavaScriptを用いてURLを隠す方法も併せて導入を考えたのですが、これを行うと、スクリプトを有効にした際に表示されるURLが実体参照文字に変換されて表示されていたので、一先ず導入は見送りました。
一応記述例だけ・・・例:
<script>document.getElementById('tb_url').value = ["<$MTEntryTrackbackLink doentity="1"$>"].join("");</script>
こうしていざスパムを体感して、その対策の重要性を憶えて策を練るようになって来ると、実に様々な素晴らしいスパム対策が考案されている事に驚きました。
そして、それらをくぐってさえ送りつけて来るスパムに対して、改めて脅威と怒りを覚えてしまいます。
「減らない」(むしろ増えてる)事には理由が有って、それはやはり、スパムに引っ掛かってしまう現状が多いから、なのだと思います。
そして、稀に「引っ掛かる方も悪い」という意味不明な言い分が出て来る事がありますが、それはどうやっても送り付ける方が完全に悪いんです。
また、スパム送信の現状には「送り付ける者の意思すら無関係」という可能性もあります。
いわゆる「ゾンビPC」みたいな、リモート擬態に在るパソコンからの送信ですね。
この場合は、直接の送信元にある意思は無関係・無自覚状態です。
これらを無くして行く事も、全世界の通信の割合を過多に占めるスパムを減らしていける方策のひとつだと思います。
つまり、簡単に言い換えると「対策を施す」という事ですね。
Movabletypeでは、そのスパムやコメント用のCGIを用いて、例えば私のサイトのそれらのCGIを用いて、外部からのスパムの踏み台にする、という方法が在るのかどうかは不明ですが、自身が完璧なセキュリティ対策を施すに至るまでの知識が無い限りは、こうやって自サイトに対策を施しておく事も重要なのではないかな?と考えてしまいます。
よって、今まで「届かないから何もしてなかった」という点が反省。
PCウィルス対策と似たようなもので、届いてからその対策を施したとしても、それが遅れている事は明白なのですね。
最後に、これは完全な蛇足となってしまうのですが「IP枯渇問題」というのが在ります。
IPアドレスは、ネット上の住所みたいなもので、個別のネットワーク(又はPC)にイッコイッコ重複せずに割り振られているものです。
これらが、スパムに利用される事でどんどんブラックリストに入る事になれば、いわゆる「利用不可のIP」というのが増大して行く事になります。
これは、上記の枯渇問題を加速させる動きであり、となると、ブラックリスト自体が歓迎されない事になり兼ねないわけです。
IPアドレスは有限なので、この観点からも、ブラックリストに入るようなIPアドレスを生んで欲しく無い、というのが私の願いです。
一方で、ホワイトリスト の考え方も定着しつつあるとは思うのですが、これもまた、利用するにはそのコストが多大なのではないか?と思ってます。
例えばこのサイトを例にすると、ある人から届いたコメント・トラックバックの送信元IPをイッコイッコホワイトリストに入れて行くとしても、その作業自体がコストとなってしまいます。
数多くのスパムから振り分け・判別する事自体もコストとなり、重くのしかかってしまう事になり兼ねません。
また、たとえ以前に許可として通したとしても、次には異なるIPからの場合、再度同じ手順を踏まなければなりません。
加えて、以前許可したIPが今度はブラックリストに入ってるような事態が生まれたとしたら・・・など、考え出したらキリがありません。
・・・でもまぁ、これらは素人考えなので「先駆けている人達」は既に他の方法を生み出してるとは思うのですが。IPv6プロトコルとか考えられてますもんね(´・ω・)
とにかく、これからもスパムと付き合って(向き合って)いかねばならない可能性はすごく高いので、それらによるCGI動作負荷軽減も考慮しつつ、目指しつつ対策を施していく事にする一件でした。
しかし、こんなほそぼそ運営のとこまで標的にしてくるなんて・・・スパム・・・なんて恐ろしいコ!!!
[参考記事]
■Daryl's HomePage: 日本語を含まないコメントテキストのブロックプラグイン
■MovableTypeで行こう!: スパムトラックバックが激減! [MovableTypeで行こう!]
■MovableType備忘録: スパム・トラックバック対策 [MovableType備忘録]
■MovableType備忘録: スパム・トラックバック対策3 [MovableType備忘録]
■spam TrackBack対策ならTrackBack auto-discoveryを消すに限る : ARTIFACT ―人工事実―
■JavaScriptを使ってスパムによるCGIの過負荷を防ぐ - Open MagicVox.net
[予備メモ]
■The blog of H.Fujimoto:日本語でないスパムをフィルタするプラグイン(MT3.2以降用) [The blog of H.Fujimoto]