A Aldeia Numaboa ancestral ainda está disponível para visitação. É a versão mais antiga da Aldeia que eu não quis simplesmente descartar depois de mais de 10 milhões de pageviews. Como diz a Sirley, nossa cozinheira e filósofa de plantão: "Misericórdia, ai que dó!"

Se você tiver curiosidade, o endereço é numaboa.net.br.

Leia mais...

Informática Numaboa - Tutoriais e Programação

A praga dos spammeiros

Sex

27

Fev

2009


16:01

(5 votos, média 5.00 de 5) 


O plugin (semi)final

params; // get API key $key = $pluginparams->get( 'key' ); $checkUsers = $pluginparams->get( 'check_users', 1 ); $checkAdmin = $pluginparams->get( 'check_admin', 1 ); // get User object $user = & JFactory::getUser(); // we are useless with out key if(empty($key) || (!$checkAdmin && $mainframe->isAdmin() ) || (!$checkUsers && !$user->getParam('guest', 1) ) ) { return; } // set adrs $adrs = $_SERVER['REMOTE_ADDR']; // get the cache $cache =& JFactory::getCache('httpBL', 'output'); $cache->setCaching( 1 ); // We only cache response not the outcome. So settings can be changed without problems. $response = $cache->get($adrs); if( !$response ) { // Query $ip = implode ( '.', array_reverse( explode( '.', $adrs ) ) ); $query = $key . '.' . $ip .'.dnsbl.httpbl.org'; $response = gethostbyname( $key . '.' . $ip . '.dnsbl.httpbl.org' ); // Ver se é um dos spammeiros de plantão que não foram pegos no honey pot if( $query == $response ) { $response = '0.0.0.0'; $uri = $_SERVER['REQUEST_URI']; $req = $_SERVER['REQUEST_METHOD']; if( strpos( $uri, 'http://' ) !== false ) $response = '127.0.50.15'; if( strpos( $uri, '/destaque?texto=' ) !== false ) $response = '127.0.50.23'; } // store data $cache->store($response, $adrs); } // explode response $resp = $response; $response = explode( '.', $response); // If the response is positive, if ( $response[0] == 127 ) { // Get thresholds $age = $pluginparams->get( 'age', 30 ); $threat = $pluginparams->get( 'threat' , 25 ); // Who to block $block_s = $pluginparams->get( 'block_s', 1 ) ? 1 : 0; $block_h = $pluginparams->get( 'block_h', 1 ) ? 2 : 0; $block_c = $pluginparams->get( 'block_c', 1 ) ? 4 : 0; $block = $block_s | $block_h | $block_c; // Redirect $redirect = $pluginparams->get( 'redirect' ); // lazy if so here we go if ( $response[1] < $age && $response[2] > $threat && ($response[3] & $block > 0)){ if($redirect){ header( "HTTP/1.1 301 Moved Permanently "); header( "Location: $redirect" ); } // Colocar no script $regra = "iptables -A INPUT -s $adrs -j DROP # $resp "; switch( $response[3] ) { case 1: $regra .= 'S'; break; case 2: $regra .= 'H'; break; case 3: $regra .= 'S H'; break; case 4: $regra .= 'C'; break; case 5: $regra .= 'S C'; break; case 6: $regra .= 'H C'; break; case 7: $regra .= 'S H C'; break; case 15: $regra .= 'Meu filtro: http'; break; case 23: $regra .= 'Meu filtro: destaque'; break; } $data = date("d.m.Y H:i:s", time()); $regra .= ' ('.$data .' )'.chr(10); $handler = fopen( "/home/numaboa.com/logs/cassados", "a" ); fwrite( $handler, $regra ); fclose( $handler ); // Finalmente colocar no iptables rezando para que já tenha sido // redirecionado para o Honey Pot ou tenha recebido o erro 301 // Alguns milisegundos fazem toda a diferença! shell_exec("sudo /usr/sbin/iptables -A INPUT -s $adrs -j DROP"); // Is this the correct way to handle in Joomla! 1.5 JError::raiseError( 301, JText::_("Moved")); } } } }

Finalmentes

Espero que estas dicas sirvam para alguém. Para mim o processo foi doído (doido também), mas valeu.

Abraços da vó Vicki, um tanto exausta vovo

отзывы drift casino казиносковорода из нержавейки с толстым дном отзывыдать отзывлобановский депутатновости свежие украинаdeeoалександр лобановский

Informações adicionais