Limita el acceso con HTTP 403 al banear IP

Banear IP con PHP facilmente

En Internet nuestros sitios web se encuentran expuestos muchas veces a personas indeseables, o a conexiones que por una razón u otra deseamos mantener alejadas de nuestro sitio web en general. Para estos casos, como buenos administradores y webmasters debemos utilizar las aplicaciones a nuestra mano, para banear IP y así proteger nuestros intereses.

¿Cómo Banear IP?

Dependiendo de la plataforma, del hosting y de nuestras opciones, podriamos bannear un IP utilizando nuestro firewall, o cualquier otro metodo dispuesto para tal fin, sin embargo, muchas veces la portabilidad de nuestro sitio web, nos indica que la mejor forma es hacerlo como parte del código fuente de nuestro proyecto web.

black_list.txt

Debemos crear un archivo .txt en el cual almacenemos los IPs que deamos bloquear por defecto, tanto en formato IPv4, como en IPv6.

Por ejemplo, si deseáramos bloquear el acceso desde una IP local, simplemente deberíamos indicarle el siguiente contenido:

127.0.0.1
::1

Como vemos en el ejemplo anterior, debemos indicar una dirección IP, la que deseamos utilizar para banear IP, en cada línea.

Banear IP con banear_ip.php

A continuación veremos el sencillo código, con el cual obtendremos la información de black_list.txt, y con el cual, banear IP resulta sumamente sencillo.

/*
* HACKING BALLZ
*┏┓┏┓╋╋╋╋┏┓┏┓╋╋╋╋╋┏━━┓╋╋╋╋╋╋╋┏━━┓
*┃┗┛┣━┓┏━┫┣╋╋━┳┳━┓┃┏┓┣━┓┏┓┏┓╋┣━━┃
*┃┏┓┃╋┗┫━┫━┫┃┃┃┃╋┃┃┏┓┃╋┗┫┗┫┗┓┃━━┫
*┗┛┗┻━━┻━┻┻┻┻┻━╋┓┃┗━━┻━━┻━┻━┛┗━━┛
*╋╋╋╋╋╋╋╋╋╋╋╋╋╋┗━┛
*
* ...internet desde cero!
* HTTP://HACKINGBALLZ.COM
*
* banear_ip.php (19/03/2012) | v.1
* larry hans | hackingballz
*
* https://hackingballz.com/banear-ip/
*/

$black_list = file('black_list.txt');

if(in_array($_SERVER['REMOTE_ADDR'],$black_list)){

//Error HTTP 403 - Forbidden
header('HTTP/1.1 403 Forbidden');
exit;

}

En el script vemos como lo primero que hacemos es convertir el contenido de black_list.txt en un array, mismo que luego comprobamos si tiene en sus valores, alguna coincidencia con el IP del visitante. En el caso de que debamos banear IP, al encontrarlo dentro del array, desplegamos el error HTTP 403, que hace referencia al acceso prohibido a la aplicación para las condiciones dadas.

El error HTTP 403

Banear IP con PHP

Imagen graciosa desde Google Images 🙂

En el protocolo HTTP utilizado por la World Wide Web, encontramos el error “403 Forbidden”, que es devuelto por el servidor HTTP cuando un usuario solicita una página, para la cual no esta autorizado.

En Wikipedia, nos encontramos una lista detallada de los “sub” errores, que forman parte del 403:

403.1 – Execute access forbidden.
403.2 – Read access forbidden.
403.3 – Write access forbidden.
403.4 – SSL required.
403.5 – SSL 128 required.
403.6 – IP address rejected.
403.7 – Client certificate required.
403.8 – Site access denied.
403.9 – Too many users.
403.10 – Invalid configuration.
403.11 – Password change.
403.12 – Mapper denied access.
403.13 – Client certificate revoked.
403.14 – Directory listing denied.
403.15 – Client Access Licenses exceeded.
403.16 – Client certificate is untrusted or invalid.
403.17 – Client certificate has expired or is not yet valid.
403.18 – Cannot execute request from that application pool.

Una vez explicado el PHP, y la razón por la cual devolvemos el error 403, cerramos esta entrega, recordandoles que pueden dejar sus comentarios en la parte inferior de este artículo sobre banear IP.

Un hacking saludo…