PC-Tools.Net - Quality Coding

unix: webfilt

webfilt 0.96 - Flexible web interface to server-side spam filters

Language: C

License: GNU GPL

Download source: webfilt-0.96.tar.gz [23K]


webfilt is not a spam filter, but provides a generic web-based interface for Bayesian-style UNIX filters that need occasional training and corrections. It has been tested with SpamProbe and SpamBayes, but should work with other command-line filters too.

The webfilt system works with existing UNIX accounts, and consists of three distinct components that operate independently:

  • User's procmail recipes and cron jobs. The storelast.sh shell script is invoked by a user's .procmailrc and simply saves a size-limited copy of each incoming e-mail message. The destination directory is determined by spam-state, done by procmail processing. A cron job periodically cleans old message copies.
  • webfiltd, daemon. The daemon component is invoked by inetd, and responds to a number of commands that allow a connecting client to authenticate, read files, and execute remote commands. This is all done with the authenticated user's permissions. This daemon only accepts local connections.
  • webfilt.cgi, web interface The CGI program creates the web interface. Running with low privileges, it communicates with the webfiltd daemon over a socket to guarantee privilege isolation. The user logs in using their web browser and can then view recent emails and run commands on certain files (to train the filter).