最新の日記 日記一覧 前の月 次の月 前の年 次の年 短縮 ログイン 凍結中

Diary

N2Wiki > Diary > 2008 > 06 > 18

2008-06-18 (水) リファラプラグイン [N2Wiki][Log][tDiary][スパム]

tDiaryの「リンク元」機能的なプラグインを作りました。

tDiaryをこれまで使ってきたのは、リンク元機能があったから、といっても過言ではなかったわけで、トラックバックはなくてもリンク元機能だけは欲しかったのです。
しかし、管理が行き届かずに、リファラスパムの巣窟にしてしまった経緯から、スパム対策をどうするか悩みました。
大手のブログサービスであるならば、この手のスパム対策はサービスの一環として管理者が一手に行い、ユーザーは手を煩わされないのでしょうけれど、個人サイトでCGIを使っている場合、フィルタリングの設定など継続的にメンテナンスしてないとヒドイことになるのはご存知の通りです。
コーディングとメンテナンスのコストとその効果をいろいろ自分なりに考えた結果、基本的にホワイトリスト&承認制で行くことにしました。
具体的には、以下のような手順でスパムを弾きます。

1. 簡単なスパムボットチェック
  (ボットぽいなら弾く)
2. ブラックリストをチェック
  (ここまでの間に弾いたリファラは記録されない)
3. ホワイトリストをチェック 
  (リストに存在しない場合は承認待ちになる)

というわけで、せっかく言及リンクを踏んだのに、管理人が気付いて承認するまでリンク元に現れない、ということがあります。
少し窮屈な気もしますが、ご理解いただければ幸いです。
日記記事はデフォルトでリファラを記録するように設定しました。
承認済みのリファラは個別の記事の一番下にあるリファラ欄に表示されます。
その他のWikiページの場合は、#?referrer と記述することでリファラを記録・表示できます。

ところで

リファラリンクの表示は、リファラの生のURLとリンクの踏まれた回数が並べてあるだけの素朴なものなのですが、これだけだとあまりにも素朴すぎるので、次のような機能を作ってみました。

1. リファラ欄の下の方に「言及リンク作成」とあります。
  言及したい記事のページでこのリンクをクリックして文字列を入力してやります。
2. するとURLが一つ生成するので、それを言及先URLとしてアンカータグを自分の記事に書きます。
3. そのリンクを踏むとN2Wiki側には、さきに入力した文字列でリファラリンクが作られます。

「…だめじゃね?『リンク元』より全然手間かかってるし。」
「ま、そのとおりなんだけど、言及してる側がリンク文字列に自由な文字列を設定できた方が嬉しいこともあるんじゃないか、と。ブログ名と記事名を並べて書くとか、一言コメント的な文字列を設定するとか。」

仕組みとしては、単にリンク文字列をGETのパラメータとして言及リンク先に渡してるだけですが、日本語が絡むとutf8のものをURLエンコードしなければならないので、「URLのあとにつづけて『?x=リンク文字列』と打ち込んでください」とか簡単に言えないのがもどかしい。
つくづくアルファベットだけで済む人たちがうらやますい、です。


この記事へのコメント

最初の一行だけ表示されています

     全部 最新10 
    お名前:

    四零七八を半角数字で