Mi era venuto in mente un po' di tempo fa, poi l'avevo dimenticato. Oggi lo stavo implementando per un sito e ho ricollegato le cose:
c'è un metodo piccolo piccolo per sopprimere buona parte dello spam nei form html, ed è quello di inserire un campo in più, nascosto via css. I bot che passano per lasciare lo spam non sono così complessi da elaborare tutto il css del sito (ci vorrebbero troppe risorse, non sarebbe conveniente) quindi lo riempiono come tutti gli altri campi... gli umani no, perché non lo vedono 
Ora, il form per aggiungere messaggi è una tabella generata da /servizi/guestbook/scrivi_js.php?utente=<...>.
Basterebbe aggiungere ad essa una riga, dove il <tr> ha display: none;, e nella riga inserire un campo dal nome "attraente", e.g.
Codice:
<tr style="display:none;">
<td bgcolor=lightblue><font face=verdana size=2>Lasciare vuoto questo campo:</td>
<td><input type=text name=username></td>
</tr>
il codice php che si occupa dell'aggiunta del messaggio ( guestbook_js.php?azione=scrivi ) deve solo controllare che questo campo sia vuoto, ed il gioco è fatto.
Due righe nell'html, due righe nel php, tanto spam di meno - anche solo come soluzione temporanea nell'attesa di una nuova versioneun po' più... standard