stereolog スパム対応版(拡張方式)

拡張方式のスパム対応版を作成しました。
stereolog_spam.zip
前回公開したスパム対応版とは別物です。互換性はありません。
今回のバージョンは本体だけではスパムに対応できませんが、
スパム制限プログラムを追加する事により、柔軟にスパムに対応する事が可能です。
またPHPの知識があれば自身でスパム制限プログラムを作成する事が可能です。
あとはちょこっとした不具合対応やアップロードしたファイルの閲覧、削除が可能となっています。
■移行方法
<初めて利用する方>
通常のstereologと同様の方法で利用できますので
readme_sjis.txtを参照下さい。
<通常のstereologから移行される方>
readme_spam_sjis.txtに変更したファイルが記述されていますので
対象ファイルを上書きして下さい。
<スパム対応版(以前に提供した)からの移行される方>
/tb.php
/inc配下のモジュールを全て上書きして下さい。
■スパム制限プログラムの作り方
readme_spam_manual_sjis.txtを参照して下さい。

stereologでのスパム対策

言及リンクを設定しているにもかかわらずトラックバックスパムを受け付けてしまったので、他の手を検討中。
とりあえずトラックバックのログを出力してみたのだが1日50件以上は受信しているっぽい。有名どころは1000件以上は1日に受信しているんじゃないかな?
観察してみると送信先は特定のホストからなのでとりあえずホストアドレスで制御できるようにしてみた。根本的解決にはならないけど、言及リンクは結構処理が重いので負荷的にはだいぶ良くなるはず。
あと根本的な対策を入れないといけないのだけれど、なかなか良い案が無い。
一般的に2バイトを含まないエントリに対して弾く手もあるのだけれど、なんとなく嫌(外人からのトラックバックもらうことないけどね)それに国内のスパム業者に関しては意味ないし。
禁則ワードは実装しようと思ったけどワードの調整が難しい。どれが禁則ワードか送信する側がわからないのもちょっと辛いか?とりあえず保留。
あと特徴見るとトラックバック先がドメイン直下のアドレスなのでこれは利用できるかも。ドメイン直下から記事にトラックバックすることってほとんど無いよね。
許可しないURLhttp://www.yahoo.co.jp/http://www.yahoo.co.jp/index.htmlhttp://www.yahoo.co.jp/index.php
許可するURLhttp://www.yahoo.co.jp/?id=111111http://www.yahoo.co.jp/tekito/http://www.yahoo.co.jp/tekito/index.htmlhttp://www.yahoo.co.jp/tekito/?id=11111
な感じ?とりあえず実装する方向。
あと思いついたのだけれどTBのアドレスをJavaScriptで表示するのはどうだろう?スパムってクロールしてから送信すると思うんだけどそれってクローラで行うよね。JavaScriptでURL表示したら読めないよね。過去分はしかたないけどいいかもしれない。

stereologのスパム対応版

stereologのスパム対応版を作成しました。
新たにstereologを利用し始める方はこちらを
使うと便利かもしれません。
stereologスパム対応版
stereolog_spam1.zip
stereolog 0.67bに下記の修正を加えています。
<スパム対応>
・トラックバック:言及されているかどうかで制限することが可能
・コメント:HTTP_REFERERが自サイトかどうかで制限することが可能
<不具合修正>
・archivesの年月表示部分にて最新の年しか表示されない不具合を修正
・トラックバック、コメントのどちらか一方をDISABLEにした場合、JavaScript側でエラーとなっていた不具合を修正
設定画面はこんな感じ

アップグレードの方法
1.下記ファイルを上書きする
・tb.php
・inc/comments.php
・inc/config_table.php
・inc/delete.php
・inc/display.js
・inc/func.php
・inc/view.php
2.conf.phpを修正する
削除

define(’TRACKBACK_DISABLE’, “0″); // トラックバック機能
define(’COMMENTS_DISABLE’, “0″); // コメント機能

追加

define(’TRACKBACK_MODE’, “1″); // トラックバック機能
define(’COMMENTS_MODE’, “1″); // コメント機能

ある程度テストはしていますが、何か不具合があればコメントにどうぞ。