After I went a little overboard with the longest Geek Talk... er, Nerd Talk ever in the history of the Dirty Little Secrets podcast (episode #99), I thought it appropriate to do a little Nerd Talk that stays on the whole "porn" topic.
There have been many filter applications that have been developed over the years that try to prevent people from accessing (intensionally or by accident) pornographic websites. The filters work in a number of different ways. One of the most common ways is to look for keywords that are considered inappropriate. The keywords could show up in the URL, or within the content of the page.
This method is a bit of a problem because sites that do no contain any pornographic material but have "inappropriate keywords" are blocked. This site, for example would get blocked in a heartbeat. XXXchurch.com. The #1 Christian Porn Site.
Solution? There are a few - like having a whitelist of all the sites that might be flagged but are trusted sources - CNN.com, MSNBC.com, XXXChurch.com. But that list would go on forever.
It looks like the best alternative would be to get a computer to learn how to look at porn. In other words get the computer to look at each image before it is displayed to the user and determine if it is pornographic. Enter Pornographic Image Filter. Looks like the developers over at SafeSquid have cooked-up an algorithm that can tell if an image has naked people in it.
"Pornographic Image Filter can analyze an image in real-time, and identify the ones that are pornographic in nature. It analyzes the graphical content like skin tone, contour, etc. to identify a pornographic image. [...] Although it is about 85%-90% accurate, it acts as a good deterrent."
It looks the program runs on *unix machines for enterprise-level content filter servers, so it doesn't look like you'll be able to install this on your home computer. I'd like to see if this technology will soon be implemented at the consumer level.
Although, if you're using a Mac (recent convert here), you're running a unix system. Hack it! ;)