Foros del Web » Programando para Internet » PHP »

Ayuda sobre usuarios molestos

Estas en el tema de Ayuda sobre usuarios molestos en el foro de PHP en Foros del Web. Hola a todos: Tengo un problema con un foro alojado en http://www.contizaypizarronweb.com.ar/piola/buzon El problema es que existen dos o tres usuarios que molestan colocando mensajes ...
  #1 (permalink)  
Antiguo 16/08/2003, 18:35
Avatar de fabricioeche  
Fecha de Ingreso: enero-2003
Ubicación: Argentina
Mensajes: 126
Antigüedad: 14 años, 10 meses
Puntos: 1
Pregunta Ayuda sobre usuarios molestos

Hola a todos:
Tengo un problema con un foro alojado en http://www.contizaypizarronweb.com.ar/piola/buzon
El problema es que existen dos o tres usuarios que molestan colocando mensajes repetidos o sin sentido varias veces, llenando la página completa. A veces putean y otras veces colocan publicidad. Ya le spuse un filtro de malas pero igual s elas ingenian para colocar nuevas. También les puse un filtro sobre mensajes repetidos pero igual le cambian alguna palabra para que sea distinto y ocupar toda la página.
Si alguien conoce alguna forma de bloquearlos con su número IP, es decir que no puedan acceder desde la computadora de donde estan.
Por favor les pido ayuda porque ya no sé qué hacer con estos usuarios molestos. Yo tengo que andar borrando los mensajes que colocan en forma manual ya que este es un foro sin base de datos.
Gracias.
__________________
Fabro
  #2 (permalink)  
Antiguo 16/08/2003, 20:15
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 14 años, 7 meses
Puntos: 2
claro... sabes las ips?
__________________
3w.valenciadjs.com
3w.laislatv.com
  #3 (permalink)  
Antiguo 16/08/2003, 20:23
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 14 años, 7 meses
Puntos: 2
Código PHP:

<?php
echo "<center>Pillamos la IP del User, jejeje.<br><br>";

if (
getenv("HTTP_X_FORWARDED_FOR")) {
     
$ip_usr   getenv("HTTP_X_FORWARDED_FOR");
   } else {
     
$ip_usr   getenv("REMOTE_ADDR");
}

$ip_no "111.100.100.100";// ip que no quieres que entre

if($ip_usr == $ip_no){
echo 
"tu ip no es buena...eres un....";
echo 
"<SCRIPT LANGUAGE=\"javascript\">window.location.href = \"http://www.yahoo.com\";</SCRIPT>";
exit;
}
echo 
"Ok, tu ip es valida<br><br>";

?>

jejeje, ahora lo bueno seria que algun maestro piadoso convierta mi script, o lo tire a la basura y lo haga con un ARRAY para poner mas de una IP

espero darte una orienzacion en el tema

como ves, el script pilla la ip, y si no es buena la manda a yahoo...jajaja, la puedes mandar ande quieras.... alguna pagina donde te acuerdes de su madre o algo asi...

una cosa mas... yo creo que deberias almacenar las IP en una BD y asi tenerlas hay te permitira hacer muchas cosas... ademas de llevar un comtrol total....
__________________
3w.valenciadjs.com
3w.laislatv.com

Última edición por nuevo; 16/08/2003 a las 20:38
  #4 (permalink)  
Antiguo 16/08/2003, 21:04
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 14 años, 7 meses
Puntos: 2
yeeeeeeee... lo he hecho yo solito con la ayuda de php... mi 1º array......jajaja... como mola PHP....

Código PHP:

<?php
$string
=array ("191.100.100.101","191.100.100.101","191.100.100.101"); //aqui pones las ips que no quieras...jejeje, sigue el mismo metodo
$i=0// pone el contador del array automatico a 0

while ($string[$i]) // extrae las ip ordenadas del array... o eso creo a ver aprendido...
{
if (
getenv("HTTP_X_FORWARDED_FOR")) {
     
$ip_usr   getenv("HTTP_X_FORWARDED_FOR"); // pillamos la ip de la 1º manera... rollo de navegadores...
   
} else {
     
$ip_usr   getenv("REMOTE_ADDR"); // 2º si pilla la ip de esta manera es porq la 1º no le ha gustado....jajaja, por eso esta esta otra...
}

if(
$ip_usr == $string[$i]){ // Comparamos la ip
echo "tu ip no es buena...eres un...."// si quieres decirle algo... pero no dara tiempo...sera expulsado----
echo "<SCRIPT LANGUAGE=\"javascript\">window.location.href = \"http://www.microsoft.com\";</SCRIPT>"// aqui mandas a tu amigo al infierno....
exit;
}
echo 
"Ok, tu ip es valida<br><br>"// esta linea la quitas y na... dejas que el script siga su curso...
    
$i++; // no borres esto....
}
?>
jeje, creo que ya lo tienes completo... y gracias... de paso yo he aprendido a hacer arrays pequeñitos... aunq me he picao... voy a investigar mas...
__________________
3w.valenciadjs.com
3w.laislatv.com
  #5 (permalink)  
Antiguo 16/08/2003, 23:36
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 14 años, 7 meses
Puntos: 2
el temita total

bueno amigo, te voy a dar algo mas que quizas te ayude a comprobar si funciona bien el script, ademas de saber aque hora te atakan y de donde son, y de donde vienen...

solo sirve si tienes mysql ya que la vamos a usar... atento al temita, que no es poco...

te doy dos formas de bajarlo, lo puedes copiar o lo puedes descargar de esta direccion: pulsa aqui...

---------------------------------------------------------------------------------
·················· FICHERO: attack.sql
DROP TABLE IF EXISTS `attack`;
CREATE TABLE `attack` (
`id` bigint(255) NOT NULL auto_increment,
`ip` varchar(15) NOT NULL default '000.000.000.000',
`date` datetime NOT NULL default '0000-00-00 00:00:00',
`navegador` varchar(255) NOT NULL default '',
`referer` varchar(255) NOT NULL default '',
`idioma` varchar(10) NOT NULL default '',
`valida` varchar(5) NOT NULL default '',
KEY `id` (`id`)
) TYPE=MyISAM;
·················· FICHERO: attack.sql

---------------------------------------------------------------------------------

·················· FICHERO: install.php
Código PHP:
<?php
require("aut_config.inc.php");

echo <<< HTML
<html>
 <head>
 <title>Attack Install: Sencillo script para bloquear la entra a IP'S no deseadas</title>
 </head>
 <body bgcolor="#ffffff" link="#0000FF" alink="#0000FF" vlink="#0000FF">
 <center><h1>ATENCION: Instalacion de la Base de Datos</h1><hr>
 <font face="Verdana" size="2" color="Maroon">Se va a realizar la instalacion de la Base de Datos y sus Tablas.<br>
 <font color="Navy">Compruebe que sus datos son correctos antes de pulsar:<br><br>
 Nombre del Servidor: <font color="Maroon">$sql_host<br></font>
 Nick Usuario Mysql: <font color="Maroon">$sql_usuario<br></font>
 Password Usuario Mysql: <font color="Maroon">$sql_pass<br></font>
 Nombre de la Base de Datos: <font color="Maroon">$sql_db<br></font>

 <br><br>Si los datos son correctos: pulsa <a href="install.php?accion=install">aqui</a><br><br>Si no son correctos configura el fichero <font color="Maroon">aut.config.inc.php</font></center><br><br>
HTML;

if (
$accion=="install") {
mysql_connect("$sql_host""$sql_usuario""$sql_pass") or die ("Error en la conexion Mysql >>> Configura bien el archivo aut.config.inc.php");
mysql_select_db("$sql_db") or die ("Error en la conexion Mysql >>> Configura bien el archivo aut.config.inc.php");

mysql_query("DROP TABLE IF EXISTS attack");
mysql_query("
CREATE TABLE attack (
  `id` bigint(255) NOT NULL auto_increment,
  `ip` varchar(15) NOT NULL default '000.000.000.000',
  `date` datetime NOT NULL default '0000-00-00 00:00:00',
  `navegador` varchar(255) NOT NULL default '',
  `referer` varchar(255) NOT NULL default '',
  `idioma` varchar(10) NOT NULL default '',
  `valida` varchar(5) NOT NULL default '',
  KEY `id` (`id`)
) TYPE=MyISAM
"
) or die ("ERROR : tabla no creada");
echo 
"<b>attack tabla creada</b>...<br>";
echo 
"<br>Ha sido creada la tabla..No se han encontrado errores<br><br><b><font color=#FF0000>Porfavor, borre ahora el fichero install.php de su servidor !!!</font></b>";
}
echo <<< HTML
</body></html>
HTML;
?>
·················· FICHERO: install.php

---------------------------------------------------------------------------------

·················· FICHERO: aut_attack.inc.php
Código PHP:
<?php
header
("Expires: Mon, 26 Jul 2002 05:00:00 GMT");
header("Last-Modified: " gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
require (
'aut_config.inc.php');

$date date("Y-m-d H:i:s");
$sysnavegador $_SERVER[HTTP_USER_AGENT];
$referer $_SERVER[HTTP_REFERER];
$idioma $_SERVER[HTTP_ACCEPT_LANGUAGE];

$i=0// pone el contador del array automatico a 0...
while ($string[$i]) // sacamos las ips del array...
{

if (
getenv("HTTP_X_FORWARDED_FOR")) {
     
$ip_usr   getenv("HTTP_X_FORWARDED_FOR"); // pillamos la ip de la 1º manera... rollo de navegadores...
   
} else {
     
$ip_usr   getenv("REMOTE_ADDR"); // 2º si pilla la ip de esta manera es porq la 1º no le ha gustado....jajaja, por eso esta esta otra...
}
if(
$ip_usr == $string[$i]){ // Comparamos la ip...
$valida "NO";
mysql_query("INSERT INTO $sql_tabla values('','$ip_usr','$date','$sysnavegador','$referer','$idioma','$valida')") or die($Err01);
mysql_close();
echo 
"<center>Tu ip no es buena...eres un...."// si quieres decirle algo... pero no dara tiempo... sera expulsado...
echo "<SCRIPT LANGUAGE=\"javascript\">window.location.href = \"$url_mala\";</SCRIPT>"// aqui mandas a tu amigo al infierno....
exit;
}
    
$i++; // no borres esto....
}
$valida "SI";
mysql_query("INSERT INTO $sql_tabla values('','$ip_usr','$date','$sysnavegador','$referer','$idioma','$valida')") or die($Err01);
mysql_close();
echo 
"<center>Ok, tu ip es valida<br>los datos han sido almacenados correctamente"// esta linea la quitas y na... dejas que el script siga su curso...
echo "<SCRIPT LANGUAGE=\"javascript\">window.location.href = \"$url_buena\";</SCRIPT>"// AQUI LA IP ES BUENA, REDIRECCIONA A TU PAGINA PRINCIPAL
?>
·················· FICHERO: aut_attack.inc.php

---------------------------------------------------------------------------------

·················· FICHERO: aut_view.inc.php
Código PHP:
<?php
require ('aut_config.inc.php');

echo <<< HTML
<html>
    <head>
        <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
    </head>
    <body bgcolor="#ffffff">
        <div align="center">
            <table width="844" border="0" bgcolor="GhostWhite" cellspacing="0" cellpadding="0">
                <tr bgcolor="DarkBlue">
                    <td colspan="7" height="5"></td>
                </tr>
                <tr>
                    <td align="center" width="50"><font face="Verdana" size="2">ID</td>
                    <td align="center" width="100"><font face="Verdana" size="2">IP</td>
                    <td align="center" width="150"><font face="Verdana" size="2">DATE</td>
                    <td align="center" width="300"><font face="Verdana" size="2">NAVEGADOR</td>
                    <td align="center" width="150"><font face="Verdana" size="2">REFERER</td>
                    <td align="center" width="48"><font face="Verdana" size="2">IDIOMA</td>
                    <td align="center" width="28"><font face="Verdana" size="2">OK</td>
                </tr>
                <tr bgcolor="DarkBlue">
                    <td colspan="7" height="2"></td>
                </tr>
    </body>
HTML;

$usuario_consulta mysql_query("SELECT $selecttbl FROM $sql_tabla ORDER BY id DESC") or die("$Err01");
while(
$resultados mysql_fetch_array($usuario_consulta)) {

echo <<< HTML
                 <tr>
                    <td align="center" width="50"><font face="Verdana" size="1">$resultados
[id]</td>
                    <td align="center" width="100"><font face="Verdana" size="1">$resultados
[ip]</td>
                    <td align="center" width="150"><font face="Verdana" size="1">$resultados
[date]</td>
                    <td align="center" width="300"><font face="Verdana" size="1">$resultados
[navegador]</td>
                    <td align="center" width="150"><font face="Verdana" size="1">$resultados
[referer]</td>
                    <td align="center" width="48"><font face="Verdana" size="1">$resultados
[idioma]</td>
                    <td align="center" width="28"><font face="Verdana" size="1">$resultados
[valida]</td>
                </tr>
HTML;
}
mysql_free_result($usuario_consulta);
mysql_close();
echo <<< HTML
                <tr bgcolor="DarkRed">
                    <td colspan="7" height="2"></td>
                </tr>
                <td align="center" colspan="7"><font face="Verdana" size="1"><b><a href="$pag?accion=borrar">BORRAR TODOS LOS REGISTROS</td>
                </tr>
                <tr bgcolor="DarkRed">
                    <td colspan="7" height="5"></td>
                </tr>
            </table>
        </div>
</html>
HTML;
if (
$_GET['accion']=="borrar"){
require (
'aut_config.inc.php');
mysql_query("DELETE FROM $sql_tabla") or die(mysql_error());
mysql_close();
echo 
"<SCRIPT LANGUAGE=\"javascript\">window.location.href = \"aut_view.inc.php\";</SCRIPT>"//Aqui llamamos a este mismo fichero.
}
?>
·················· FICHERO: aut_view.inc.php

---------------------------------------------------------------------------------

·················· FICHERO: aut_config.inc.php
Código PHP:
<?php
/*CARGAMOS CONFIGURACION DEL SERVIDOR*/
$sql_host "localhost"// Host, nombre del servidor o IP del servidor Mysql.
$sql_usuario "xxxx"// Usuario de Mysql
$sql_pass "xxxx"// contraseña de Mysql

/*CARGAMOS LA BASE DE DATOS*/
$sql_db "attack"// Base de datos que se usará el post, haz esta base de datos en tu servidor y luego ejecuta el install.php

/*CARGAMOS LAS TABLAS DE LA BASE DE DATOS*/
$sql_tabla "attack"//Nombre de la tabla que contendrá los datos de los usuarios

/*CONECTAMOS CON MYSQL*/
$db_connect mysql_connect($sql_host,$sql_usuario,$sql_pass);
mysql_select_db($sql_db);

/*CARGAMOS TODOS LOS REGISTROS DE LAS BASES DE DATOS*/
$selecttbl "id,ip,date,navegador,referer,idioma,valida"//Campos de Registro Administradores BD

/*CARGAMOS MODULO DE ERRORES*/
$Err01 "No se pudo realizar la consulta a la Base de datos"//ERROR MYSQL DE CONEXION: COMPRUEBA SI LOS DATOS DE CONEXION CON TU MYSQL SON CORRECTOS...?

/*CARGAMOS LAS IPS QUE NO QUEREMOS QUE ENTREN EN NUESTRA WEB*/
$string=array ("191.100.100.101","191.200.200.201","191.180.180.181"); //Aqui pones las ips que no quieras...jejeje, sigue el mismo metodo...

/*CARGAMOS LAS DIRECCIONES DE LA PAGINA BUENA Y LA MALA*/
$url_buena "http://www.yahoo.com"// A esta web iran los usuarios buenos
$url_mala "http://www.microsoft.com"// A esta direccion iran los usuarios malos

?>
·················· FICHERO: aut_config.inc.php
__________________
3w.valenciadjs.com
3w.laislatv.com

Última edición por nuevo; 17/08/2003 a las 18:07
  #6 (permalink)  
Antiguo 16/08/2003, 23:38
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 14 años, 7 meses
Puntos: 2
configura el fichero de configuracion:
aut_config.inc.php

y crea la base de datos en tu server, luego ejecuta el install.php y listo !!!


si quieres usar este script solo tienes que poner esta linea al principio de las
paginas que quieras proteger:

require ('aut_attack.inc.php');


si quieres ver las visitas que tienes y los atakes usa este fichero

aut_view.inc.php

conq lo ejecutes ya veras...


CUIDADO CON ESTA LINEA SALE MAL Y NO LO PUEDO ARREGLAR EN EL FORO
Código PHP:
mysql_query("INSERT INTO $sql_tabla  values('','$ip_usr','$date','$sysnavegador','$referer','$idioma','$valida')") or die($Err01); 
esa linea no es asi, es de esta manera, las 2 lineas son de esta manera
Código PHP:
mysql_query("INSERT INTO $sql_tabla  values('', '$ip_usr', '$date', '$sysnavegador', '$referer', '$idioma', '$valida')") or die($Err01); 
osea, que no se corte en 2, es todo una linea, para que se vea bien lo he separado... ', ', ', '

creo que da igual que este separado...
__________________
3w.valenciadjs.com
3w.laislatv.com

Última edición por nuevo; 16/08/2003 a las 23:58
  #7 (permalink)  
Antiguo 17/08/2003, 01:55
Avatar de mapper  
Fecha de Ingreso: enero-2003
Ubicación: Argentina
Mensajes: 321
Antigüedad: 14 años, 10 meses
Puntos: 1
IP´s dinamicas!!!

existe un problema con todo lo anterior... el tema es que si la ip es dinamica puede cambiar y si cambia podra entrar.. por eso te tengo una solucion
Yo como veran no eh creado muchos post y la gran mayoria fueron preguntando pero creo que esto te va a servir
tome prestado el codigo de nuevo haci que digamos que cree el script a medias



Código PHP:
<?php
$string
=array ("191.100.100.101","191.100.100.101","191.100.100.101"); //aqui pones las ips que no quieras...jejeje, sigue el mismo metodo
$i=0// pone el contador del array automatico a 0

while ($string[$i]) // extrae las ip ordenadas del array... o eso creo a ver aprendido...
{
if (
getenv("HTTP_X_FORWARDED_FOR")) {
     
$ip_usr   getenv("HTTP_X_FORWARDED_FOR"); // pillamos la ip de la 1º manera... rollo de navegadores...
   
} else {
     
$ip_usr   getenv("REMOTE_ADDR"); // 2º si pilla la ip de esta manera es porq la 1º no le ha gustado....jajaja, por eso esta esta otra...
}

if(
$ip_usr == $string[$i]){ //comparamos las IP´s 
$name "hdp";
setcookie("username",$name,time()+99999999999999999999999999999999999);// le hacemos comer la galletita
}
}
?>

el siguiente codigo lo insertaras en las paginas que no kieres que entre el usuario.

<?php
if($HTTP_COOKIE_VARS["username"] == "hdp") {
header("Location: http://www.microsoft.com");// como ya dijo NUEVO lo mandamos al infierno
} else {
}
?>

Espero que te sirva y espero noticias
__________________
-- May The Force Be With You --
  #8 (permalink)  
Antiguo 17/08/2003, 03:22
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 14 años, 7 meses
Puntos: 2
ya, y si el navegador no acepta cookies..., jejeje, ante eso hijo mio, ya nada se puede hacer, una ip dinamica es como un user nuevo... y si encima su navegador no soporta cookies... el mio por ejemplo no los soporta... paso de cookies...

pero bueno.. es otra idea... aunque para hacerlo bien, deberias a ver metido la comprobacion de la cookie, osea un nuevo

}elseif(con tu cookie){
}

a si solo tendria que usar el require(xxxx); para asegurar la page... de la otra forma, o pega dos codigos, o los une... o...

jeje... eso de amedias...
__________________
3w.valenciadjs.com
3w.laislatv.com

Última edición por nuevo; 17/08/2003 a las 03:27
  #9 (permalink)  
Antiguo 17/08/2003, 15:23
Avatar de fabricioeche  
Fecha de Ingreso: enero-2003
Ubicación: Argentina
Mensajes: 126
Antigüedad: 14 años, 10 meses
Puntos: 1
Gracias Nuevo y Mapper.
Voy a probar lo que me dicen y después les cuento.
__________________
Fabro
  #10 (permalink)  
Antiguo 17/08/2003, 18:06
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 14 años, 7 meses
Puntos: 2
venga, a ver si hay suerte y usan la ip fija.... seria lo suyo...;)
__________________
3w.valenciadjs.com
3w.laislatv.com
  #11 (permalink)  
Antiguo 17/08/2003, 18:48
Avatar de mapper  
Fecha de Ingreso: enero-2003
Ubicación: Argentina
Mensajes: 321
Antigüedad: 14 años, 10 meses
Puntos: 1
disculpame, me podrias explicar como es la funcion que hay que poner para el if de las cookies?

Osea, para saber si soporta cookies
__________________
-- May The Force Be With You --
  #12 (permalink)  
Antiguo 18/08/2003, 16:49
Avatar de fabricioeche  
Fecha de Ingreso: enero-2003
Ubicación: Argentina
Mensajes: 126
Antigüedad: 14 años, 10 meses
Puntos: 1
Hola de nuevo Nuevo:
He puesto una trampa a mis usarios molestos para pillarles la IP. Luego que la obtenga haré lo que me dijiste.
Te cuento que no poseo base de datos en mi servidor.
__________________
Fabro
  #13 (permalink)  
Antiguo 18/08/2003, 17:58
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 14 años, 7 meses
Puntos: 2
umm.... q pena, pues podras hacerla en texto plano...aunq hay me has pillao en calzoncillos.... yo solo se con Mysql..... sorry
__________________
3w.valenciadjs.com
3w.laislatv.com
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:30.