I don't bother with content filters. Too many false positives, and too easy to get around. I figure the kids (12yo and 17yo) can handle seeing goatse.cx by accident, and if they actually go looking it's its own punishment. I do have their browsers set up to go through a squid proxy, and I periodically review the logs. I have it set up so that they have to ask me to allow them access; a cron job shuts it down again at bedtime.
That's it, really. The threat of their mom finding porno sites in the logs is pretty effective.
Yeah, they could trivially get around the proxy just by changing their settings. I'm really kind of disappointed that neither one has figured it out yet. I'd actually like them to try; they'd at least be learning something about computers.
I've noticed several design suggestions in your code.