lundi 14 août 2006
Trac Spam
Le serveur, par lolz, à 23:16
Voilà quelques semaines que le serveur recevait du spam via les tickets de Trac (l'outil de suivi de projets). Aussi, pour celles & ceux qui doivent y faire face aussi, quatre lignes de python à ajouter à Ticket.py[1], au début de la fonction create_ticket(), celles qui sont entre les deux lignes vides:
def create_ticket(self):
if not self.args.get('summary'):
raise util.TracError('Tickets must contain Summary.')
if self.args.get('summary').find('http://') != -1:
raise util.TracError('Antispam: Ticket summary cannot contain URL.')
if self.args.get('description').find('http://') != -1:
raise util.TracError('Antispam: Ticket description cannot contain URL.')
ticket = Ticket()
ticket.populate(self.args)
ticket.setdefault('reporter',self.req.authname)
Cela va refuser tout ticket ayant http dans le résumé et/ou la description, interdisant donc les envoi d'URLs. Bien entendu, les contributeurs réguliers de Trac ne peuvent plus non plus poster d'URLs dans les tickets. Il suffit ensuite de recompiler le .pyc et/ou .pyo et puis relancer apache.
Edit : Merci à Yoan de m'avoir relu. On ne devrait pas être trop vite fier de code pondu à trois heures du matin! Le code ci-dessus est corrigé; il resserre la chaîne interdite.
Notes
[1] Je me base sur Trac 0.8.x