* CVS更新 -- [[henoheno]] [#wba87136] ** [[BugTrack2/200]]: [spam] URI spamフィルタ (Part 1) とブロック機構 [#mb7c3d95] (※このコードは現状のCVS版でも自動的に有効になるわけではありません。試したい場合は [[開発日記/2006-11-12]] を参考にして下さい) - [[cvs:lib/spam.php]] (1.3-1.5) * Added uri_array_implode() * Added is_badhost() * Added generate_glob_regex(), enables globbing * Added check_uri_spam_method() * Added pkwk_spamnotify() * uri_pickup(): user:pass => userinfo (See RFC3986) * uri_pickup(): Enabled port 0 to 9, fragment * spam_uri_pickup_preprocess(): Domain exposure for Google * scheme_normalize(): ttp => http, ttps => https * Multi-metrics: quantity, area(total, anchor, bbcode), non_uniq, badhost * Mail summerized data (why blocked) * Cleanup, renaming functions etc *** Multi-metrics [#qea94c72] - URIを複数の観点から評価する様になりました。評価方法としきい値は、実行する場面によってあらかじめ指定する事ができます。 -- ''quantity'': URIの単純な物量によりブロックする (例: 8個以上はNG) -- ''area total'': 下にあげるarea関係のURIの個数(の総数)によりブロックする --- ''area anchor'': HTML anchor タグの影響下にあるURIの個数によりブロックする (例: 2個までOK) --- ''area bbcode'': BBCodeタグの影響下にあるURIの個数によりブロックする (例: 一つも許さない) -- ''non_uniq'': 同一のURIが N個以上重複している時にブロックする (例: 4回まで重複利用してよい) 例: 正規化後のURIを比較するため、 以下のURIは全て同一であるとみなされます (この場合3回重複) http://foobar.example.com/unknown/../foobar http://foobar.example.com:80/foobar HTTP://FOOBAR.EXAMPLE.COM/foobar ttp://foobar.example.com////foobar -- ''badhost'': 管理者の定める特定のホストに対するURIをブロックする (例: *.example.comを禁じる) *** Domain exposure [#b663b52e] - このように意図を隠したURIを http://www.google.nl/pda?q=pukiwiki+1.4.8+site:nasty.example.com - 2つのURIに変換します (後者を残すかどうかは任意)。結果的に、例えば怪しいドメインを badhost のチェックに回すことができます。 http://nasty.example.com/?refer=www.google.nl http://www.google.nl/pda?q=pukiwiki+1.4.8+ - Googleをターゲットにしたそのようなspamを見かけたので土台を作っておきましたが、この機構は正規表現で汎用的に作ってあるので、他のURIに対しても使えます(多分)。 - Googleをターゲットにしたそのようなspamを見かけたので土台を作っておきましたが、この機構は正規表現だけで実現できるように(汎用的に)作ってあるので、他のURIに対しても使えます(多分)。 *** Mail summerized data (why blocked) [#x1bf4e7a] - %%メールでフィードバックを与える部分であるところの、Mail summerized data (why blocked) の部分がうまく動いていない模様...なので、現状、今までとの際立った違いは見られないでしょう。%% このようなフッタがメールに追加されます。(r1.5) BLOCKED: Blocked by: quantity(19), area=>anchor(6), area=>bbcode(6), non_uniq(12) ※示されたそれぞれが閾値をオーバー。カッコ内は検出された個数 *** ブロック結果 [#m556adfa] ブロックされた結果の挙動は全て同じです。攻撃側に情報を与えないため、送信した側には理由を教えません。