* New upstream release.
authorgregor herrmann <gregoa@debian.org>
Thu, 25 May 2006 22:08:36 +0000 (22:08 -0000)
committergregor herrmann <gregoa@debian.org>
Thu, 25 May 2006 22:08:36 +0000 (22:08 -0000)
ChangeLog
README
debian/changelog
nb_tb-setup
tb.cgi

index 9a4e3e3458ba805e74c1072fd7d6db163c1ab2e5..2486f51c361e4745ef2480ab3df337517567a0f4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2006-05-25     gregor herrmann <gregor+debian@comodo.priv.at>
+       * nanoblockertrackback 0.2.3:
+               - check if the own blog URL is contained in the URL submitted as 
+                 a new trackback (spam prevention)
+                        
+
 2006-04-29     gregor herrmann <gregor+debian@comodo.priv.at>
        * nanoblockertrackback 0.2.2:
                - check for emtpy excerpt on receiving trackback ping
diff --git a/README b/README
index f5f990e6fa9844ddb992b61783947f9cfd751f77..8f26ea575ce18259f56de58ddb3865df96c6a98f 100644 (file)
--- a/README
+++ b/README
@@ -1,8 +1,11 @@
 nanobloggertrackback - adding trackback functionality to nanoblogger
 ====================================================================
 
+Copyright and Licence
+---------------------
+
 Copyright: gregor herrmann <gregor+debian@comodo.priv.at>, 2005, 2006
-License: Released under the GNU GPL (cf. COPYING)
+License: Released under the GNU GPL 2 or later (cf. COPYING)
 
 Original tb.cgi:
 The standalone implementation can be downloaded from
@@ -49,7 +52,7 @@ b) Manual
   is running!
 
 * Change the beginning of tb.cgi:
-  Replace BLOGDIR, PASSWORD, and EMAIL with meaningful values
+  Replace BLOGDIR, BLOGURL, PASSWORD, and EMAIL with meaningful values.
 
 * Copy tb.cgi to your webserver's cgi-bin directory or somewhere else, where
   the webserver can execute it.
index ff399e637dd8574112cd01df55c00c5efeb8c229..027b8352fcf373991e55fc4d30952ca217cf9b3a 100644 (file)
@@ -1,3 +1,9 @@
+nanobloggertrackback (0.2.3-1) unstable; urgency=low
+
+  * New upstream release.
+
+ -- gregor herrmann <gregor+debian@comodo.priv.at>  Fri, 26 May 2006 00:07:57 +0200
+
 nanobloggertrackback (0.2.2-3) unstable; urgency=low
 
   * Update to Standards-Version: 3.7.2 (no changes required).
index ad1d07771fd4c2b7577d161f91735b126e9ba9e7..e1e1aa48dfff84401fd208eb4f6348b008e00760 100755 (executable)
@@ -27,13 +27,14 @@ CURDIR=$(/usr/bin/dirname $RPATH)
 CGIDIR=
 CGIURL=
 BLOGDIR=
+BLOGURL=
 PASSWORD=
 EMAIL=
 CSS=
 
 # get config
 while [ -z "$CGIDIR" ]; do
-       echo -n "cgi-bin directory (e.g. /home/sepp/public_html/cgi-bin): "
+       echo -n "cgi-bin directory (e.g. /home/jane/public_html/cgi-bin): "
        read CGIDIR
 done
 
@@ -41,12 +42,17 @@ echo "You have to make sure that scripts can be executed there."
 read -p "Press return to continue" DUMMY
 
 while [ -z "$CGIURL" ]; do
-       echo -n "cgi-bin URL (e.g. http://info.example.org/~sepp/cgi-bin): "
+       echo -n "cgi-bin URL (e.g. http://info.example.org/~jane/cgi-bin): "
+       read CGIURL
+done
+
+while [ -z "$BLOGURL" ]; do
+       echo -n "blog URL (e.g. http://info.example.org/~jane/blog): "
        read CGIURL
 done
 
 while [ -z "$BLOGDIR" ]; do
-       echo -n "nanoblogger directory (e.g. /home/sepp/public_html/blog): "
+       echo -n "nanoblogger directory (e.g. /home/jane/public_html/blog): "
        read BLOGDIR
 done
 
@@ -96,7 +102,7 @@ echo "OK"
 # copy cgi and change
 echo -n "Copying and changing cgi script ... "
 cp --preserve=mode $CURDIR/tb.cgi $CGIDIR/ || exit 1
-perl -pi -e "s~BLOGDIR~$BLOGDIR~; s~PASSWORD~$PASSWORD~; s~EMAIL~$EMAIL~;" $CGIDIR/tb.cgi || exit 1
+perl -pi -e "s~BLOGDIR~$BLOGDIR~; s~BLOGURL~$BLOGURL~; s~PASSWORD~$PASSWORD~; s~EMAIL~$EMAIL~;" $CGIDIR/tb.cgi || exit 1
 echo "OK"
 
 # copy footer/header
@@ -140,6 +146,7 @@ CURDIR=
 CGIDIR=
 CGIURL=
 BLOGDIR=
+BLOGURL=
 PASSWORD=
 EMAIL=
 CSS=
diff --git a/tb.cgi b/tb.cgi
index ee39d89826f230a3a3c42ac23ad1e46efb26553c..4aff2195f818ef5018f8717ddcc18e3a84cb90bf 100755 (executable)
--- a/tb.cgi
+++ b/tb.cgi
@@ -2,10 +2,9 @@
 # Copyright 2002 Benjamin Trott.
 # This code is released under the Artistic License.
 #
-# Original: http://www.movabletype.org/downloads/tb-standalone.tar.gz
-# Docs: http://www.sixapart.com/movabletype/docs/tb-standalone
-#
-# Changed by gregor herrmann <gregor+debian@comodo.priv.at>, 2005, 2006
+# Changes:
+# Copyright gregor herrmann <gregor+debian@comodo.priv.at> 2005, 2006
+# GPL 2 or later
 
 use strict;
 use warnings;
@@ -18,9 +17,10 @@ my $Footer = "BLOGDIR/tb/footer.txt";
 my $Password = "PASSWORD";  
 my $MailNotify = 'EMAIL';
 my $NBDataDir = "BLOGDIR/data";
+my $BLOGURL = "BLOGURL";
 
 use vars qw( $VERSION );
-$VERSION = '1.02';
+$VERSION = '1.02-gh01';
 
 use CGI qw( :standard );
 use File::Spec::Functions;
@@ -36,6 +36,8 @@ unless ($mode) {
     respond_exit("No URL (url)") unless $i->{url};
     # require excerpt, even if not in TB specification, against spam
     respond_exit("No excerpt") unless $i->{excerpt};
+    # let's look if our $BlogURL is in the submitted trackback URL
+    respond_exit("Blog URL not in trackback URL") unless blog_in_url($i->{url});
     my $data = load_data($tb_id);
     unshift @$data, $i;
     store_data($tb_id, $data);
@@ -56,6 +58,7 @@ $me?__mode=list&tb_id=$tb_id
 EOF
     close(SENDMAIL)     or warn "sendmail didn't close nicely";
     respond_exit();
+
 } elsif ($mode eq 'list') {
     my $tb_id = munge_tb_id(get_tb_id());
     die("No TrackBack ID (tb_id)") unless $tb_id;
@@ -314,6 +317,21 @@ sub from_file {
     $c;
 }
 
+sub blog_in_url {
+    my $urlfound = '';
+    my $url = $_[0];
+    require LWP::UserAgent;
+    my $ua = LWP::UserAgent->new;
+    $ua->agent("TrackBack/$VERSION");
+    my $request = HTTP::Request->new(GET => $url);
+    my $response = $ua->request($request);
+    if ($response->is_success) {
+        $urlfound =  (grep(/$BlogURL/, $response->content) ? '1' : '');
+    }
+    return $urlfound;
+}
+
+
 __END__
 
 =head1 NAME