Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => PHP => Mensaje iniciado por: teudiss en 13 Abril 2010, 09:49 AM

Título: Denegar acceso por ip
Publicado por: teudiss en 13 Abril 2010, 09:49 AM
Hola, quiero que a mi web solo tengan acceso 2 ip´s de mi intranet tengo el siguiente script pero no me funciona como quiero. Las ip´s que quiero que accedan estan en una tabla de mi base de datos.


Citar<?php
include("Connections/ip.php");

$ip_adress=$_SERVER['REMOTE_ADDR'];
$busqueda= mysql_query("SELECT ip FROM maquina WHERE ip='".$_SERVER['REMOTE_ADDR']."'",$ip) or die(mysql_error());

         
if(mysql_num_rows($busqueda)>0) {  
  echo "aqui quiero que me lea el codigo html";
   
} else
{
echo "acceso denegado";
}

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<body>
<style type="text/css">
<!--
body {
   background-color: #0066FF;
}
.Estilo1 {font-size: 24px}
-->
</style><form action="validar_usuario.php" method="post">
 <div align="center">
   <p>&nbsp;</p>
   <p class="Estilo1"></p>
   <p>&nbsp;</p>
   <table width="200" border="2">
     <tr>
       <th scope="row">Contrase&ntilde;a</th>
       <td><input name="password" type="password" id="password" size="10" maxlength="10" /></td>
     </tr>
   </table>
   <p>
     <input type="submit" value="Aceptar" />
   </p>
   <br />
 </div>
</form>
</head>
</body>
</html>

Título: Re: Denegar acceso por ip
Publicado por: WHK en 13 Abril 2010, 10:04 AM
asi?

Código (php) [Seleccionar]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<body>
 <style type="text/css">
  <!--
  body {
   background-color: #0066FF;
  }
  .Estilo1 {font-size: 24px}
  -->
 </style>
</head>
<body>
<?php
include("Connections/ip.php");
if(
mysql_query("
 select ip from maquina
 where ip='"
.mysql_real_escape_string($_SERVER['REMOTE_ADDR'])."'
 limit 1
"
$ip)){
?>


<form action="validar_usuario.php" method="post">
 <div align="center">
   <p>&nbsp;</p>
   <p class="Estilo1"></p>
   <p>&nbsp;</p>
   <table width="200" border="2">
     <tr>
       <th scope="row">Contrase&ntilde;a</th>
       <td><input name="password" type="password" id="password" size="10" maxlength="10" /></td>
     </tr>
   </table>
   <p>
     <input type="submit" value="Aceptar" />
   </p>
   <br />
 </div>
</form>

<?php }else{ ?>
acceso denegado
<?php ?>

</body>
</html>

Título: Re: Denegar acceso por ip
Publicado por: teudiss en 13 Abril 2010, 10:32 AM
No me funciona, (no da ningun error) puede acceder cualquier equipo.

En mi tabla solo tengo mi ip (127.0.0.1).....:(
Título: Re: Denegar acceso por ip
Publicado por: Castg! en 13 Abril 2010, 14:49 PM
pero que error te da?

porq no imprimis tu ip para asegurarnos cual es!? tenes dominio no-ip y estas entrando por ahi?

cambia el acceso denegado por esto:

Código (php) [Seleccionar]

{
die("Acceso denegado");
}
Título: Re: Denegar acceso por ip
Publicado por: winroot en 13 Abril 2010, 15:31 PM
hola,

y si usas archivos .httaccess?

creo que es lo mejor
saludos
Título: Re: Denegar acceso por ip
Publicado por: Castg! en 13 Abril 2010, 16:07 PM
Código (apache) [Seleccionar]
<Limit GET POST>
order deny,allow
allow from 127.0.0.1
deny from all
</Limit>


creo que ahi iria.
Título: Re: Denegar acceso por ip
Publicado por: teudiss en 14 Abril 2010, 12:45 PM
Cita de: Castg! en 13 Abril 2010, 16:07 PM
Código (apache) [Seleccionar]
<Limit GET POST>
order deny,allow
allow from 127.0.0.1
deny from all
</Limit>


creo que ahi iria.

Ya me funciona con este codigo.


Citar
   
<?php
include("Connections/ip.php");


$busqueda= mysql_query("SELECT ip FROM maquina WHERE ip='".$_SERVER['REMOTE_ADDR']."'",$ip) or die(mysql_error());

         
if(mysql_num_rows($busqueda)!=0){   
   
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<body>
<style type="text/css">
<!--
body {
   background-color: #0066FF;
}
.Estilo1 {font-size: 24px}
-->
</style><form action="validar_usuario.php" method="post">
</head>
  <div align="center">
    <p>&nbsp;</p>
    <p class="Estilo1"></p>
    <p>&nbsp;</p>
    <table width="200" border="2">
      <tr>
        <th scope="row">Contrase&ntilde;a</th>
        <td><input name="password" type="password" id="password" size="10" maxlength="10" /></td>
      </tr>
    </table>
    <p>
      <input type="submit" value="Aceptar" />
    </p>
    <br />
  </div>
</form>
<?php }else{ ?>acceso denegado<?php } ?>

</body>
</html>



Muchas Gracias por la ayuda
Título: Re: Denegar acceso por ip
Publicado por: Castg! en 14 Abril 2010, 14:44 PM
denada, ahora, si queres, podes personalizar el error 403 Forbbiden Page, asi no siempre te dice el mensaje de apacha, podes hacer una pagina vos y desapues indicarle a apache que esa pagina habra cuando da este error, 403.

Código (apache) [Seleccionar]
ErrorDocument 403 pagina403.html
Título: Re: Denegar acceso por ip
Publicado por: WHK en 16 Abril 2010, 10:01 AM
no necesitas el mysql_num_rows() pero bueno, ahi ves.
Título: Re: Denegar acceso por ip
Publicado por: -explicito- en 17 Abril 2010, 06:50 AM
apf -d IP
jkajaja... eso es a nivel server sorry.

<Limit GET POST>
order deny,allow
allow from 127.0.0.1
deny from all
</Limit>

Esa es la mejor manera.
Ahora si quieres un banneador automatico hay que tocar mas cosas
Título: Re: Denegar acceso por ip
Publicado por: fede_cp en 17 Abril 2010, 07:09 AM
lo que yo me preguntaba, es si queres hacer un acceso solo, para un sector, por ejemplo usuarios de españa, y no de otros paises, O, de una IP en especifica, si es una ip en especifica, no vale la pena usar mysql, y si es para un solo pais, tampoco, si es para muchos si ya que habria muchos registros como por ejemplo:si la ip comienza en 190, busca en la bbdd, y va a pertenecer de arg.



saludos
Título: Re: Denegar acceso por ip
Publicado por: Castg! en 17 Abril 2010, 14:30 PM
nono, el quiere poder entrar nomas con 127.0.0.1

Citarsi la ip comienza en 190, busca en la bbdd, y va a pertenecer de arg.

asi funciona la clase GeoIP, se conecta a una base de datos ENORME! y va comparando las primeras cifras de cada ip.
Título: Re: Denegar acceso por ip
Publicado por: fede_cp en 17 Abril 2010, 21:52 PM
Cita de: Castg! en 17 Abril 2010, 14:30 PM
nono, el quiere poder entrar nomas con 127.0.0.1

Citarsi la ip comienza en 190, busca en la bbdd, y va a pertenecer de arg.

asi funciona la clase GeoIP, se conecta a una base de datos ENORME! y va comparando las primeras cifras de cada ip.

claro a eso me referia, entonces si es solo a 127.0... , para que usar bbdd?? ajjaja


saludos