Tag Archives: google

Comment Spam

Within a week of switching to WordPress for my blogging software, I started receiving a lot of comment spam. I found this amazing because I have had a blog for a few years now without any problems. I have had the occasional spam comment, but lately I have been receiving 3-7 of them a day. I know this is very little compared to high-volume sites, but seems like a lot for a small site like mine. For the most part, the Akismet spam plugin WordPress ships with does an amazing job. It has let a few slip by, but that is no big deal.

This whole comment spam problem reminded me of a research paper I read a year or so ago. It was called Defending Against an Internet-based Attack on the Physical World. It was about the threat of using api’s such as Google’s SOAP API to automate filling out request forms for catalogues and other material on thousands of sites to some victim. This would cause the victim’s physical mail to become overloaded and very hard to manage. Imagine 100′s or 1,000′s of pieces of mail being delivered to your house every day. The point of this being that I figure spammers are using a technique similar to this to find WordPress blogs, then spam them automatically.

I decided to see how easy it was. First I went to see if I could sign up for Google’s SOAP API, but I found out that they no longer offer this service. Without this service, it is going to be a lot harder to get this done. Ignoring the whole api problem, I decided to find a search string to find comment pages on WordPress blogs. I was amazed at how easy this was. I just went to a blog using the default WordPress theme and looked for keywords that would always be there. After about a second I came up with this search string:

"Leave a Reply" Name Mail Website "proudly powered by WordPress"

Typing this into google found over 1,000,000 pages! Clicking a few of these verified that they were infact WordPress comment pages. Now I needed to write a program to automate parsing these links. Without the search api, I was stuck doing it manually. After about an hour I came up with this python script. This script will submit the search string I generated above to google, parse the first 100 results from the page, then submit a search for the next 100 and so on. While testing this script I noticed google started blocking my search, which is a good thing. I found a way around this by using different User-Agent strings and adding some timeouts. Because of this, the script defaults to saving the first 100 links. I have left out the code to fill out the comment forms becuase I feel that piece of code would do more harm than good.

Anyways, I think there is a huge problem with comment spam that needs to be fixed. The fact that so many pages can be found in a single search is amazing. Google blocking querys when it detects a bot is definitely a step in the right direction. The fact that I was able to get around this so easily is not.

Files:
http://www.mattweber.org/files/wp-link-finder.py

Content and Pictures

Well I was able to get all my posts though Googles cache, however I was unable to get the files linked in the posts. I have decided to remove all links to the missing files until I am able to get them back. I will be going though old archives of mine to try and find some of these files so I can get them linked again.

I have also installed a plugin so you can view my pictures. You can browse my albums by visiting: Matt Weber’s Photo Gallery.

Old Content

So it looks like I will be unable to get the contents of my old site back, so I will most likely get what I can from Google’s cache and forget about the rest. Sorry.

I have started reading up on css, xhtml, and ajax so I can throw together a new design. I think the default WordPress theme is good enough until I can get a new one ready. Any suggestions for the design would be great.

PyBlosxom Plugin: googlestats.py

This plugin keeps statistics on googlebot visits to you blog entry’s. It was inspired by the WP-GoogleStats plugin for wordpress. When enabled this plugin checks if the visitor is the googlebot, and if it is, updates the number of visits, last visit date, and last visit time template variables. You can use these template variables in the body of your posts to create custom messages based on visit statistics, or use the built-in $googlestats template variable to display a default message.

Download:

http://www.mattweber.org/files/googlestats.py

PyBlosxom Plugin: robots.py

The robots.py PyBlosxom plugin will insert the Robots META Tag to your blog entry’s. This is my first PyBlosxom plugin so any comments or suggestions are appreciated.

Download:

http://www.mattweber.org/files/robots.py

Directing the Googlebot

While setting up PyBlosxom there were a few things I wanted to be able to do. The most important was being able to direct bots around my site, more specifically, the googlebot. I did some research and found a few sites that explain how the googlebot works and how you can guide it though your site.

I found Scribbling.net’s article, “Help the Googlebot understand your web site” which describes how the googlebot should index a blog. Basically, you want google to index your posts, not your main page. You do this so people can find the actual post about a topic, not your main page that has most likely changed since googlebot last indexed your site. They show that you can use metatags telling bots when and when not to index a page.

To do this using PyBlosxom you can use the comments plugin and “comment-story” flavour file with the meta tag telling googlebot to index this page and the regular “story” flavour file telling it not to index the page. Out of the box, the comments plugin would display comments any time you viewed a page with one post. This is a problem when using the calender and categories plugins because it would show the comments when viewing categories or dates with only one post, even though you were not viewing the actual post. We do not want this because it means that we will be telling google to index directories, not post pages. To fix this I modified the comments plugin so that it will only show comments when viewing an actual post. Here is my modified comments plugin for anyone interested in doing this with their blog.