Hum, I’m using Cloudflare for CDN, and discourse only see Cloudflare, not user’s IP. (in Wordpress, Cloudflare has an plugin to pass the user IP to website)
At vB we used to get literally thousands of bot “seed” accounts like
aliasg.maila.ccount
alia.sgmai.laccount
ali.asg.mailacco.unt
alias.g.m.ailaccount
al.iasgmai.lacc.ount
… etc. ad nauseum
We eventually had a plugin written to deal with them
You really need to get IP passed through correctly otherwise you are really screwed. That’s about the only effective way to stop spammers, if they are clever.
While in this case banning the IP is the right thing to do, I think there is merit in being able to stop user.name@gmail.com and username@gmail.com from being both registered as two different users at any given discourse forum.
No sane administrator should allow this behaviour (from gmail) and maybe we could have an option to extend this prohibition to other email providers as well.
It would need a simple list like ‘@gmail.com’, ‘@anotherprovidder.com’ and then it would check for registered users by removing the dot or any other relevant character (could have a list as well) to avoid users that want to have two or more accounts.
Maybe a plugin with this functionality would be the best solution.
Purtroppo siamo indifesi contro queste registrazioni. L’unica difesa è non essere presi di mira da spammer competenti.
Oggettivamente non esiste un modo per bloccare uno spammer con un numero sufficiente di indirizzi IP dal creare 100.000 account utilizzando un singolo indirizzo Gmail su qualsiasi forum Discourse standard, usando questi trucchi.
Tutte le impostazioni di limitazione dello spam e delle pubblicazioni sono inutili quando gli spammer hanno accesso a account illimitati con un singolo indirizzo Gmail.
È strano che il tuo sito abbia un problema così grave con questo, dato che non ricordo un solo caso in cui ciò sia accaduto tra i nostri oltre 1.000 clienti ospitati negli ultimi 4 anni.
@codinghorror Lo attribuisci a difese adeguate contro questa comune tecnica degli spammer o al fatto che quei siti non siano presi di mira? Quei siti ricevono regolarmente grandi volumi di tentativi di registrazione spam di qualsiasi tipo, bloccati dalle difese?
Dipende fortemente dalla nicchia, dai volumi di traffico e se siano adatti alle loro campagne di risposta diretta. Uno spammer che riesce a mantenere i post in cima alla lista dei messaggi ottiene di fatto uno spazio pubblicitario fantastico per pochi spiccioli. Lo spazio pubblicitario in homepage sopra la piega può valere comunemente da $xxx a $x,xxx al giorno, a seconda della nicchia e del volume di traffico.
Gli spammer che guadagnano cifre significative al mese lanciando campagne di risposta diretta su un forum specifico, e che potrebbero vivere in paesi in via di sviluppo con salari medi locali estremamente bassi, potrebbero essere motivati.
Ho diversi altri forum Discourse in funzione dal 2015-2016 e non hanno praticamente alcun problema con registrazioni o post spam, proprio perché non sono stati presi di mira. Non essere presi di mira dagli spammer è una bella difesa, finché non lo diventi. Per quanto ne sappia, Discourse non è supportato di default nella maggior parte dei software commerciali per lo spam dei forum, come Xrumer.
Vero, un spammer dedicato troverà sempre il modo di passare. Li abbiamo visti aprire i propri server di posta e generare migliaia di indirizzi email: buona fortuna con quello.
Detto questo, non permettere registrazioni duplicate utilizzando questi trucchi di Gmail sembra una precauzione ragionevole?
@codinghorror - Hahah, mi piace. Ma preferirei non arrendermi e morire. Non credo che questo sia un caso limite; molti siti social non permettono di registrarsi con lo stesso indirizzo Gmail a causa degli abusi degli spammer. Per quanto ne sappia, la maggior parte dei grandi non lo consente.
@bartv - Sì, per quelli che hanno i propri server di posta, almeno possiamo inserire i loro domini in blacklist come difesa abbastanza efficace (anche se gli account che sono riusciti a registrarsi prima dell’inserimento in blacklist rimangono utilizzabili). Possono ottenere altri domini, ma almeno questo richiede loro risorse, a differenza delle scorciatoie con Gmail.
Con queste scorciatoie di Gmail, non esiste davvero alcuna difesa e le variazioni aggiuntive dell’indirizzo non costano nulla allo spammer. La “distanza di Levenshtein tra gli email degli spammer” può aiutare in qualche modo con il trucco del punto dopo aver bannato molte volte lo stesso indirizzo Gmail in diverse combinazioni di punti. Al momento, però, non è possibile difendersi dal trucco del più (+), che consente essenzialmente combinazioni illimitate.
A meno che tu non abbia amici abbastanza potenti per aiutarti. E in quel caso c’è il team di sviluppo di Discourse, qui (e forse anche la comunità, se pensiamo ai plugin).
Mi dispiace, ma non sarebbe una buona cosa se Discourse trattasse tutti gli indirizzi Gmail ignorando i punti e tutto ciò che segue il simbolo +? Non sembra tecnicamente molto complicato. Sono solo alcune righe di codice piuttosto semplici. Registrazione => rileva gmail.com dopo il simbolo @ => rimuove tutti i punti e tutto ciò che segue il simbolo + fino al simbolo @, e usa quell’indirizzo => Già utilizzato? => Restituisce un messaggio di errore “Indirizzo email già utilizzato”.
Fatto. O mi sto perdendo qualcosa?
Se gli spammer scoprono che questo funziona con Discourse, inizieranno a prendere di mira sempre più forum Discourse con questa tecnica. Voglio dire, perché non dovrebbero?
Abbiamo impostato che i nuovi utenti debbano avere tutti i topic/post approvati manualmente per le prime X volte, risolvendo quasi immediatamente il problema. Alcuni hanno scoperto che modificare il post a posteriori funzionava, finché non abbiamo apportato le stesse modifiche anche per i livelli di fiducia 0 e 1.
Anche se questo non ha nulla a che fare specificamente con un trucco di dominio o un altro, interrompe il vero problema, ovvero un utente motivato che cerca di aggirare le tue contromisure. Se non possono usare un “trucco” di Gmail, ne troveranno un altro. La regola secondo cui il livello di fiducia 1 può pubblicare e richiede 5 minuti di tempo di lettura è il tipo di approccio verso cui personalmente mi orienterei.
Bene, vediamo. Quali caratteri possono essere utilizzati qui?
Alcuni servizi di posta elettronica supportano un tag incluso nella parte locale, in modo che l’indirizzo sia un alias di un prefisso della parte locale. Ad esempio, l’indirizzo joeuser+tag@example.com indica lo stesso indirizzo di consegna di joeuser@example.com. RFC 5233 si riferisce a questa convenzione come sottoreindirizzamento, ma è anche noto come indirizzamento con plus, indirizzamento con tag o estensioni della posta.
Indirizzi di questo tipo, che utilizzano vari separatori tra il nome base e il tag, sono supportati da diversi servizi di posta elettronica, tra cui Runbox (plus), Gmail (plus), Rackspace Email (plus), Yahoo! Mail Plus (trattino), iCloud di Apple (plus), Outlook (plus), ProtonMail (plus), FastMail (plus e indirizzamento con sottodominio), MMDF (uguale), Qmail e Courier Mail Server (trattino). Postfix ed Exim consentono di configurare un separatore arbitrario dall’insieme di caratteri legali.
Quindi abbiamo: plus, trattino, uguale, punto e cancelletto.
L’unica cosa che mi viene in mente che possa funzionare qui è un’impostazione super rigorosa per prevenire tutti i caratteri al di fuori di A-Z a-z 0-9 negli indirizzi email.
Preverrà sicuramente che alcuni utenti si registrino, ma potrebbe essere un compromesso accettabile se si è… ehm… presi di mira da agenti d’élite del Mossad, immagino
Potrebbe essere troppo severo; il punto qui è prevenire l’uso multiplo di tali varianti di indirizzo email, non vietarle completamente. Potresti invece aggiungere un indirizzo email ‘canonico’ a ogni account, contenente la versione pulita dell’indirizzo email effettivo dell’utente. Confronti la versione pulita degli indirizzi email per le nuove registrazioni con questo valore. È probabilmente più facile a dirsi che a farsi, però.
[ ] usare una forma canonica per l'archiviazione interna degli indirizzi email (rimuove +QUALSIASI COSA, elimina i commenti e così via.)
Fornisce un’implementazione in Ruby da cui potremmo prendere spunto, ma dovremmo essere molto molto molto prudenti (l’esempio 1 è un rischio per la sicurezza secondo: https://stackoverflow.com/a/52125295/17174)
Quindi aggiungi un’impostazione del sito nascosta con una whitelist di domini per la rimozione dei ..
Detto questo, ci sono molti modi per abusarne; in fondo, qualcuno potrebbe avere una cache di 10.000 indirizzi email spam di Gmail e iscriversi con tutti utilizzando qualche tipo di bot. Se sei preso di mira, potresti approvare ogni nuova iscrizione per un po’; forse questo è uno dei rari casi in cui vuoi un reCAPTCHA all’iscrizione in un plugin.