Joomla.it Forum
Non solo Joomla... => Sicurezza => : claudiosettantatre 20 May 2009, 18:44:00
-
Ciao a tutti,
incomincio con il ringraziare tutti gli utenti che partecipano a questo forum, grazie a loro ho risolto un sacco di problemi senza mai rompervi le balle.
Ora però il problema è un pò più complesso, e non sono riuscito a risolverlo neppure come mia consuetudine, googlando per la rete, così mi sono registrato e vi espongo il problema direttamente.
Vorrei impedire la registrazione, agli utenti che utilizzano email temporanee, tipo temporaryinbox.com, mailinator.com etc...
E' possibile inserire da qualche parte questi domini come "Non graditi"? oppure c'è in giro qualche mod che già lo faccia?
Grazie
Claudio
-
impedire la resistrazione no, non saprei ma con il componente joomlawatchs puoi bannare gli ip e dopo un po non ci pensi più se sono sempre gli stessi...
-
riguardo ad ip non graditi ho già provveduto a bannare diverse classi direttamente a livello di .htaccess, tutta roba thai e qualche provider bulgaro e turco, tuttavia questo ultimo genere di "Scocciatore" potrebbe essere potenzialmente un italiano con ip dinamico, quindi bannare classi di ip di provider italiani mi farebbe rischiare di tagliare fuori qualche utente che non centra nulla.
Non so...pensavo qualche cosa anche a livello di smtp, magari la registrazione avviene ma il mail server non invia l'email...
...dimenticavo, sono hostato su aruba...
-
tuttavia questo ultimo genere di "Scocciatore" potrebbe essere potenzialmente un italiano con ip dinamico,
ahahha
allora risolvi subito con una registrazione a pagamento...
scherzo ma non tanto poi,
sposto nella sezione giusta
-
ahahha
allora risolvi subito con una registrazione a pagamento...
;D ;D ;D
sicuramente se fosse genovese, il problema sarebbe risolto.
Oggi continuerò a googlare ancora il problema, magari nel frattempo qualcuno interviene con la risposta.
-
San Google... ::)
in components/com_user/controller.php
dopo:
// If user activation is turned on, we need to set the activation information
$useractivation = $usersConfig->get( 'useractivation' );
if ($useractivation == '1')
{
jimport('joomla.user.helper');
$user->set('activation', JUtility::getHash( JUserHelper::genRandomPassword()) );
$user->set('block', '1');
}
aggiungere:
// ##### BEGIN: SPAM DOMAIN FILTER #####
// Kick out spam domains
$email = $user->get('email');
if ( strpos($email,"gawab.com") ||
strpos($email,"mail.ru") ||
strpos($email,"spambox.us") ||
strpos($email,"mailinator.com") ||
strpos($email,"dodgeit.com") ||
strpos($email,"mytrashmail.com") ||
strpos($email,"spamcero.com") ||
strpos($email,"jetable.org") ||
strpos($email,"pookmail.com") ||
strpos($email,"mailater.com") ||
strpos($email,"guerrillamail.com") ||
strpos($email,"spamfree24.org") ||
strpos($email,"nobulk.com") ||
strpos($email,"temporaryinbox.com") ||
strpos($email,"spam.la") ||
strpos($email,"tempemail.net") ||
strpos($email,"tempinbox.com") ||
strpos($email,"list.ru") ||
strpos($email,"bk.ru") ||
strpos($email,"yahoo.co.uk") ||
strpos($email,"gmail.com") ||
strpos($email,"minivds.ru") ||
strpos($email,"nakgirls.ru") ||
strpos($email,"yandex.ru") ||
strpos($email,"info1a.cn") ||
strpos($email,"gooogletartsert.net") ||
strpos($email,"freemeilaadressforall.net") ||
strpos($email,"goodemailadressforfree.net") ||
strpos($email,"5opicforum.cn") ||
strpos($email,"pozitifff.com") ||
strpos($email,"2008bases1.net") ||
strpos($email,"nm.ru") ||
strpos($email,"goldwoof.net") ||
strpos($email,"megapochta.cn") ||
strpos($email,"meta.ua") ||
strpos($email,"fene4ek.net") ||
strpos($email,"mail15.com") ||
strpos($email,"googlemail.com") ||
strpos($email,"yandex.com") ||
strpos($email,"inmail24.com") )
{
JError::raiseWarning('','e-Mail domain is spam flagged');
$this->register();
return false;
}
// ##### END: SPAM DOMAIN FILTER #####
la lista nasce come antispam, infatti io ho aggiunto i più famosi siti di email temporanee.
Ciao
Claudio
-
Ottimo lavoro ;)
-
rieccomi qui... :-[
purtroppo il problema sembrava risolto, tuttavia mi sono accorto che per com_user, yopmail.com, Yopmail.com, YOPMAIL.COM...etc sono interpretati come domini differenti.
C'è modo di fargli ignorare il case sensitive?
Claudio
-
Ciao, è la prima volta che scrivo sul forum.
Io sostituirei le varie righe (per esempio)
strpos($email,"yopmail.com") ||
con
(eregi("^[_\.0-9a-z-]+@yopmail.com",$email)) ||
In questo modo il controllo non è "case sensitive" ed in più risolveresti anche un altro piccolo problema che potrebbe verificarsi in casi particolari come per esempio email del tipo
mailinator.com@mailinator.com
yopmail.com@yopmail.com
che aggirerebbero il controllo.
Ciao ;)
-
Complimenti per la volontà, questa modifica potrebbe essere utile a tutti, chissa che sia inglobata nelle nuove versioni.
Comunque se qualcno avesse voglia di creare un plugin si potrebbe sfruttare uno script php gia pronto che uso
http://www.stopforumspam.com/downloads/
lo uso su un forum e blocca veramente tutti, anche se purtroppo non esiste ancora per joomla...
-
Ciao, è la prima volta che scrivo sul forum.
Io sostituirei le varie righe (per esempio)
strpos($email,"yopmail.com") ||
con
(eregi("^[_\.0-9a-z-]+@yopmail.com",$email)) ||
In questo modo il controllo non è "case sensitive" ed in più risolveresti anche un altro piccolo problema che potrebbe verificarsi in casi particolari come per esempio email del tipo
mailinator.com@mailinator.com
yopmail.com@yopmail.com
che aggirerebbero il controllo.
Ciao ;)
eccolo qui:
// ##### BEGIN: SPAM DOMAIN FILTER #####
// Kick out spam domains
$email = $user->get('email');
if ( (eregi("^[_\.0-9a-z-]+@gawab.com",$email)) ||
(eregi("^[_\.0-9a-z-]+@mail.ru",$email)) ||
(eregi("^[_\.0-9a-z-]+@spambox.us",$email)) ||
(eregi("^[_\.0-9a-z-]+@mailinator.com",$email)) ||
(eregi("^[_\.0-9a-z-]+@dodgeit.com",$email)) ||
(eregi("^[_\.0-9a-z-]+@mytrashmail.com",$email)) ||
(eregi("^[_\.0-9a-z-]+@spamcero.com",$email)) ||
(eregi("^[_\.0-9a-z-]+@jetable.org",$email)) ||
(eregi("^[_\.0-9a-z-]+@pookmail.com",$email)) ||
(eregi("^[_\.0-9a-z-]+@mailater.com",$email)) ||
(eregi("^[_\.0-9a-z-]+@guerrillamail.com",$email)) ||
(eregi("^[_\.0-9a-z-]+@spamfree24.org",$email)) ||
(eregi("^[_\.0-9a-z-]+@nobulk.com",$email)) ||
(eregi("^[_\.0-9a-z-]+@temporaryinbox.com",$email)) ||
(eregi("^[_\.0-9a-z-]+@spam.la",$email)) ||
(eregi("^[_\.0-9a-z-]+@tempemail.net",$email)) ||
(eregi("^[_\.0-9a-z-]+@tempinbox.com",$email)) ||
(eregi("^[_\.0-9a-z-]+@list.ru",$email)) ||
(eregi("^[_\.0-9a-z-]+@bk.ru") ||
(eregi("^[_\.0-9a-z-]+@yahoo.co.uk",$email)) ||
(eregi("^[_\.0-9a-z-]+@gmail.com",$email)) ||
(eregi("^[_\.0-9a-z-]+@minivds.ru",$email)) ||
(eregi("^[_\.0-9a-z-]+@nakgirls.ru",$email)) ||
(eregi("^[_\.0-9a-z-]+@yandex.ru",$email)) ||
(eregi("^[_\.0-9a-z-]+@info1a.cn",$email)) ||
(eregi("^[_\.0-9a-z-]+@gooogletartsert.net",$email)) ||
(eregi("^[_\.0-9a-z-]+@freemeilaadressforall.net",$email)) ||
(eregi("^[_\.0-9a-z-]+@goodemailadressforfree.net",$email)) ||
(eregi("^[_\.0-9a-z-]+@5opicforum.cn",$email)) ||
(eregi("^[_\.0-9a-z-]+@pozitifff.com",$email)) ||
(eregi("^[_\.0-9a-z-]+@2008bases1.net",$email)) ||
(eregi("^[_\.0-9a-z-]+@nm.ru",$email)) ||
(eregi("^[_\.0-9a-z-]+@goldwoof.net",$email)) ||
(eregi("^[_\.0-9a-z-]+@megapochta.cn",$email)) ||
(eregi("^[_\.0-9a-z-]+@meta.ua",$email)) ||
(eregi("^[_\.0-9a-z-]+@fene4ek.net",$email)) ||
(eregi("^[_\.0-9a-z-]+@mail15.com",$email)) ||
(eregi("^[_\.0-9a-z-]+@googlemail.com",$email)) ||
(eregi("^[_\.0-9a-z-]+@yandex.com",$email)) ||
(eregi("^[_\.0-9a-z-]+@inmail24.com",$email)) )
{
JError::raiseWarning('','e-Mail domain is spam flagged');
$this->register();
return false;
}
// ##### END: SPAM DOMAIN FILTER #####
ho avuto un pò di tempo, e mi sono ricordato di questa modifica, tuttavia qualcosa non funziona...
Parse error: syntax error, unexpected '{' in xxxxxxxx/home/components/com_user/controller.php on line 341
la quale riporta questa parte di codice:
{
JError::raiseWarning('','e-Mail domain is spam flagged');
$this->register();
return false;
}
probabilmente sarà una virgola fuori posto, ma per me che il php sembra il nome di una brutta malattia, la situzione si complica :D
-
l'errore era in una delle condizioni, avevi dimenticato un ,$email, adesso funziona perfettamente.
// ##### BEGIN: SPAM DOMAIN FILTER #####
// Kick out spam domains
$email = $user->get('email');
if ( (eregi("^[_\.0-9a-z-]+@gawab.com",$email)) ||
(eregi("^[_\.0-9a-z-]+@mail.ru",$email)) ||
(eregi("^[_\.0-9a-z-]+@spambox.us",$email)) ||
(eregi("^[_\.0-9a-z-]+@mailinator.com",$email)) ||
(eregi("^[_\.0-9a-z-]+@dodgeit.com",$email)) ||
(eregi("^[_\.0-9a-z-]+@mytrashmail.com",$email)) ||
(eregi("^[_\.0-9a-z-]+@spamcero.com",$email)) ||
(eregi("^[_\.0-9a-z-]+@jetable.org",$email)) ||
(eregi("^[_\.0-9a-z-]+@pookmail.com",$email)) ||
(eregi("^[_\.0-9a-z-]+@mailater.com",$email)) ||
(eregi("^[_\.0-9a-z-]+@guerrillamail.com",$email)) ||
(eregi("^[_\.0-9a-z-]+@spamfree24.org",$email)) ||
(eregi("^[_\.0-9a-z-]+@nobulk.com",$email)) ||
(eregi("^[_\.0-9a-z-]+@temporaryinbox.com",$email)) ||
(eregi("^[_\.0-9a-z-]+@spam.la",$email)) ||
(eregi("^[_\.0-9a-z-]+@tempemail.net",$email)) ||
(eregi("^[_\.0-9a-z-]+@tempinbox.com",$email)) ||
(eregi("^[_\.0-9a-z-]+@list.ru",$email)) ||
(eregi("^[_\.0-9a-z-]+@bk.ru",$email)) ||
(eregi("^[_\.0-9a-z-]+@yahoo.co.uk",$email)) ||
(eregi("^[_\.0-9a-z-]+@gmail.com",$email)) ||
(eregi("^[_\.0-9a-z-]+@minivds.ru",$email)) ||
(eregi("^[_\.0-9a-z-]+@nakgirls.ru",$email)) ||
(eregi("^[_\.0-9a-z-]+@yandex.ru",$email)) ||
(eregi("^[_\.0-9a-z-]+@info1a.cn",$email)) ||
(eregi("^[_\.0-9a-z-]+@gooogletartsert.net",$email)) ||
(eregi("^[_\.0-9a-z-]+@freemeilaadressforall.net",$email)) ||
(eregi("^[_\.0-9a-z-]+@goodemailadressforfree.net",$email)) ||
(eregi("^[_\.0-9a-z-]+@5opicforum.cn",$email)) ||
(eregi("^[_\.0-9a-z-]+@pozitifff.com",$email)) ||
(eregi("^[_\.0-9a-z-]+@2008bases1.net",$email)) ||
(eregi("^[_\.0-9a-z-]+@nm.ru",$email)) ||
(eregi("^[_\.0-9a-z-]+@goldwoof.net",$email)) ||
(eregi("^[_\.0-9a-z-]+@megapochta.cn",$email)) ||
(eregi("^[_\.0-9a-z-]+@meta.ua",$email)) ||
(eregi("^[_\.0-9a-z-]+@fene4ek.net",$email)) ||
(eregi("^[_\.0-9a-z-]+@mail15.com",$email)) ||
(eregi("^[_\.0-9a-z-]+@googlemail.com",$email)) ||
(eregi("^[_\.0-9a-z-]+@yandex.com",$email)) ||
(eregi("^[_\.0-9a-z-]+@inmail24.com",$email)) )
{
JError::raiseWarning('','non puoi usare e-Mail temporanee');
$this->register();
return false;
}
// ##### END: SPAM DOMAIN FILTER #####
-
Scusate ma ho cercato nel mio Joomla 1.0.x
e sotto la cartella
components/com_user/
non trovo il file
controller.php
ma il file
user.php
potreste aiutarmi a risolvere anche per la versione 1.0.x di Joomla?
Grazie, Antonio.
-
San Google... ::)
in components/com_user/controller.php
dopo:
// If user activation is turned on, we need to set the activation information
$useractivation = $usersConfig->get( 'useractivation' );
if ($useractivation == '1')
{
jimport('joomla.user.helper');
$user->set('activation', JUtility::getHash( JUserHelper::genRandomPassword()) );
$user->set('block', '1');
}
aggiungere:
// ##### BEGIN: SPAM DOMAIN FILTER #####
// Kick out spam domains
$email = $user->get('email');
if ( strpos($email,"gawab.com") ||
strpos($email,"mail.ru") ||
strpos($email,"spambox.us") ||
strpos($email,"mailinator.com") ||
strpos($email,"dodgeit.com") ||
strpos($email,"mytrashmail.com") ||
strpos($email,"spamcero.com") ||
strpos($email,"jetable.org") ||
strpos($email,"pookmail.com") ||
strpos($email,"mailater.com") ||
strpos($email,"guerrillamail.com") ||
strpos($email,"spamfree24.org") ||
strpos($email,"nobulk.com") ||
strpos($email,"temporaryinbox.com") ||
strpos($email,"spam.la") ||
strpos($email,"tempemail.net") ||
strpos($email,"tempinbox.com") ||
strpos($email,"list.ru") ||
strpos($email,"bk.ru") ||
strpos($email,"yahoo.co.uk") ||
strpos($email,"gmail.com") ||
strpos($email,"minivds.ru") ||
strpos($email,"nakgirls.ru") ||
strpos($email,"yandex.ru") ||
strpos($email,"info1a.cn") ||
strpos($email,"gooogletartsert.net") ||
strpos($email,"freemeilaadressforall.net") ||
strpos($email,"goodemailadressforfree.net") ||
strpos($email,"5opicforum.cn") ||
strpos($email,"pozitifff.com") ||
strpos($email,"2008bases1.net") ||
strpos($email,"nm.ru") ||
strpos($email,"goldwoof.net") ||
strpos($email,"megapochta.cn") ||
strpos($email,"meta.ua") ||
strpos($email,"fene4ek.net") ||
strpos($email,"mail15.com") ||
strpos($email,"googlemail.com") ||
strpos($email,"yandex.com") ||
strpos($email,"inmail24.com") )
{
JError::raiseWarning('','e-Mail domain is spam flagged');
$this->register();
return false;
}
// ##### END: SPAM DOMAIN FILTER #####
la lista nasce come antispam, infatti io ho aggiunto i più famosi siti di email temporanee.
Ciao
Claudio
.
Ciao a tutti...
ho il problema citato nel titolo, ho provato a applicare il vostro suggerimento, ma non trovo le stringhe nel file controller.php
-
Ma hai visto che il post e la soluzione suggerita è di 9 anni fa? Hai la stessa versione? No allora chiaramente il codice sarà diverso. Sì allora stai usando una versione molto obsoleta e ti dovresti preoccupare di ben altro.
-
Ma hai visto che il post e la soluzione suggerita è di 9 anni fa? Hai la stessa versione? No allora chiaramente il codice sarà diverso. Sì allora stai usando una versione molto obsoleta e ti dovresti preoccupare di ben altro.
Ho visto che il post è vecchio, ma speravo in una soluzione per la versione attuale di joomla... e poi quando si aggiorna qualcosa non è detto che venga riscritto da capo.
-
Vedi quella era la versione 1.0 e credimi le versioni attuali sono riscritte daccapo anche perché non si tratta di aggiornamenti ma proprio di nuove versioni. Tieni presente che anche il codice php nel frattempo è evoluto e alcune funzioni anzi molte, sono deprecate.
Non ti resta che adeguare quel codice alle classi e funzioni della versione attuale di joomla e php, Ti consiglio eventualmente di postare nella sezione sviluppo per questo.
-
grazie
-
devi scrivere un plugin, credo di gruppo user e usare il trigger dell'evento registrazione al cui interno metti il codice che hai scritto sopra, ovviamente usando le var a disposizione
https://docs.joomla.org/J3.x:Creating_a_Plugin_for_Joomla