Script PHP para autobanear a intrusos

  • Autor Autor JoxMarkes
  • Fecha de inicio Fecha de inicio
JoxMarkes

JoxMarkes

Gamma
No recomendado
Verificación en dos pasos activada
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Buenas amigos, os dejo por aquí este script que yo he modificado, lo encontré hace años y lo llevo usando mucho tiempo.

Archivo ban.php
PHP:
<?

$enable="1"; //Activo = 1
$loging="1";  //Crear log txt = 1
$messaging="1"; //Mostrar error 404 = 1

//ajustes de bloqueo
$ban=htmlspecialchars( htmlentities( trim($_SERVER['REMOTE_ADDR']) , ENT_QUOTES ) ); //Определяем IP адрес атакующего.
$file = ".htaccess"; //El nombre del archivo en el que estamos bloqueando.
$path = ""; //ruta relativa del archivo $ archivo. Se requiere una barra "/" al final!
$ban_string ="deny from ".$ban; //cadena de bloqueo

//Configuraciones de registro
$log_file = "ban_log.txt"; //archivo de registro de bloqueo
$date=date('d-m-Y H:i:s'); //fecha de determinación
$address=$_SERVER['REQUEST_METHOD']." ".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; //cadena de consulta
$log_string ="$date - $ban Bloqueado al intentar acceder. Solicitud - $address"; //texto del log en el txt

//parte de trabajo del guión
if ($enable=="1") {                         //en consecuencia, el propio bloqueo
    $filepath = $path.$file;
    $killer = fopen ($filepath, 'a+'); 
    fwrite ($killer, $ban_string."\r\n"); 
    fclose ($killer); 
}

if ($loging=="1") {                            //registro
    $filepath = $path.$log_file;
    $log = fopen ($filepath, 'a+'); 
    fwrite ($log, $log_string."\r\n"); 
    fclose ($log); 
}

if ($messaging=="1") {                    //Salida del mensaje al bloqueado.
header('HTTP/1.0 404 Not Found'); 
}

?>

En tu archivo .htaccess añade las reglas que necesites, por ejemplo:
Insertar CODE, HTML o PHP:
RewriteEngine On
RewriteRule /administrator/index.php$ /ban.php [L,QSA]
RewriteRule /administrator/admin.php$ /ban.php [L,QSA]
RewriteRule admin/index.php$ /ban.php [L,QSA]
RewriteRule admin/admin.php$ /ban.php [L,QSA]
RewriteRule wp-admin/index.php$ /ban.php [L,QSA]
RewriteRule admin.php /ban.php [L,QSA]
RewriteRule /admin /ban.php [L,QSA]
RewriteRule /administration /ban.php [L,QSA]
RewriteRule administrator.php$ /ban.php [L,QSA]
RewriteRule wp-login.php$ /ban.php [L,QSA]
RewriteRule install/$ /ban.php [L,QSA]
RewriteRule \.ini$ /ban.php [L,QSA]
RewriteRule ^([^/]+).html /viewcar.php?id=$1 [QSA,NC,L]

Ahora es tan sencillo como subirlo a la raíz de tu servidor, junto al .htaccess y listo.

Todo el que entre a esas urls establecidas en tu .htacces será baneado y no podrá acceder más al sitio.

Si ha intentado acceder a alguna de estas urls, significa que no es conveniente tenerlo como usuario del sitio por que va a intentar explotar cualqueir fallo de seguirdad que tengas.:robot:

Si alguien quiere aportar código o modificarlo perfecto.

Espero que os sirva como a mi.

Saludos.
 
:encouragement:Hola [MENTION=177157]JoxMarkes[/MENTION],

Esta bueno el Script, sin embargo yo lo hago de otra forma...
Primero, no tengo nada en carpetas como esas...
admin, administrator, wp-admin, etc, etc...

Segundo, el usuario o bot al intentar entrar en una dirección que no existe...
Dispara un error 404 en el server y es ahí, donde entra en acción, uno* de mis Scripts...
"Filtrándolos" casi de la misma forma que tu lo haces...
Aunque teniendo en cuenta otros detalles; para hacer más seguro todo el sistema...
(Detalles que no puedo comentar por asunto de seguridad)

Pero reitero, esta bien planteado tu Script...
Te dejo un like de Facebook y mi voto del foro!

¡Saludos!
Hugo

(*) Tengo varios Script, para distintos tipo de errores.

PD: Me acabo de dar cuenta, que mi like de Facebok no suma, porque Facebook esta caido o algo de eso,,, cuando el sitio de Mark Zuckerberg vuelva a estar online, y si lo recuerdo, votaré de nuevo con 1 like tu aporte!!!

Actualización: Ya que quedó el like de Facebook (antes no funcionaba esa función)
 
Última edición:
Yo prefiero evitar este tipo de scripts, no me molesta hacerle saber al usuario que es una area restringida con un error 401.

Se que lo pueden considerar como una "capa de sugirad" extra pero si ese es el caso, optaría por autentificacion por dos pasos.
 
Hola,

Esta bien para ciertos casos. Otra opcion seria hacerlo con fail2ban y asi el bloqueo lo podrias hacer directamente a nivel de firewall sin que las solicitudes lleguen al servidor web.

Saludos.
 
Interesante 😀, no había pensado en esta manera de banear usuarios curiosos xD.... se
 
Atrás
Arriba