« Jul 2004 | Aug 2004 | Nov 2004 »

August 07, 2004

mt-blacklist.pl (3)

Trackback の脆弱性についての勧告」を参考に MT-Blacklist に Trackback SPAM への対策を追加しました。

MT-Blacklist のインストールについては、こちら

■$MT/extlib/jayallen/MTBlPing.pm の修正箇所

--- MTBlPing.pm.orig    Sat Aug  7 13:04:16 2004
+++ MTBlPing.pm Sat Aug  7 13:06:01 2004
@@ -30,6 +30,11 @@
            $app->translate("Need a TrackBack ID (tb_id)."))
         unless $tb_id;
 
+    if ($app->get_header('Referer') or
+        ($app->get_header('User-Agent') || '') =~ m!^Mozilla/!) {
+        return $app->_response(Error => "Trackback ping with invalid headers: denied.");
+    }
+
     use MT::Util qw( first_n_words encode_xml is_valid_url );
     use File::Spec;
     require MT::App::Trackback;

MT-2.64 の場合は $MT/lib/MT/App.pm に get_header() がないようなので、App.pm に以下を追加する。

--- App.pm.orig Sat Aug  7 14:17:22 2004
+++ App.pm      Sat Aug  7 14:17:43 2004
@@ -142,6 +142,17 @@
     return $app->error("Invalid login.");
 }
 
+sub get_header {
+    my $app = shift;
+    my($key) = @_;
+    if ($ENV{MOD_PERL}) {
+        return $app->{apache}->header_in($key);
+    } else {
+        ($key = uc($key)) =~ tr/-/_/;
+        return $ENV{'HTTP_' . $key};
+    }
+}
+
« Jul 2004 | Aug 2004 | Nov 2004 »

Since 2003.6.19, Yutaka@smate.NET <yutaka@asmate.net>. Powered by MT 2.64