Il fenomeno è oramai diffuso... chi utilizza .Text come blogs engine, è oramai oggetto di spammers senza dignità che non pensano altro che pubblicizzare medicine, servizi e sesso anche tramite i blogs.
Tanto per farsi un'idea:
MSDN Blogs now fighting "Comment Spam"
http://weblogs.asp.net/dweller/archive/2004/08/11/212947.aspx
Blog Spam Alert!
http://blogs.ugidotnet.org/penpal/archive/2004/10/26/4782.aspx
Per il momento, una soluzione poco invadente, io l'avrei trovata...
Utilizzando anche noi .Text, stiamo infatti soffrendo i "commenti spam" e dover cancellare ogni giorno diversi messaggi, la cosa iniziava a diventare fastidiosa (specialmente quando mi capita di doverlo fare con una connessione GPRS)
Analizzando le decine di messaggi di spam che giornalmente arrivano sui blog ho notato che tutti hanno in comune una cosa: il campo "title" e il campo "author" sono sempre uguali tra di loro...
Per la precisione, cambiano di messaggio in messaggio, ma sono sempre identici tra di loro nel contesto di un singolo messaggio.
A questo punto, senza dover modificare il codice di .Text, ho pensato di scrivere un trigger che, in caso di INSERT nella tabella blog_content, provvedesse ad annullare la transazione in corso se il valore dei due campi fosse stato identico tra loro.
Parlandone via messenger con l'amico Lorenzo Benaglia (MVP SQL Server), al quale chiedevo alcune delucidazioni appunto sui trigger, mi ha suggerito una soluzione ancor migliore: aggiungere un CHECK CONSTRAINT sulla tabella.
ALTER TABLE blog_content ADD CONSTRAINT chk_DifferentNames CHECK(Title <> Author)
Il risultato è a dir poco ottimo e, fino a quando gli spammer non troveranno un altro sistema per rompere le scatole, non dovremmo perdere tempo a cancellare spazzatura dai nostri blog.
Grazie Lorenzo per la dritta ;)