Ver Mensaje Individual
  #8 (permalink)  
Antiguo 06/07/2013, 10:52
Avatar de Italico76
Italico76
 
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Respuesta: Expresiones regulares y errores

Amigo mas bien, seria algo asi:

Código PHP:
<?php
define
("LOG_FILE""warning_regx.log");

function 
shutdown()
{
   
// Podria ser que la ultima expresion probada, fuera maliciosa asi que me la guardo en un archivo log

    
global $__datetime_before_execute_regex;  
    global 
$__user_regex_ok;

    if  (!isset(
$__user_regex_ok) or (!$__user_regex_ok)){
      
$now date("d-m-Y H:i:s"); 

      
file_put_contents(LOG_FILE"{$_POST['expresion_del_usuario']};$__datetime_before_execute_regex;$now;\n"FILE_APPEND LOCK_EX);
    }
}

register_shutdown_function('shutdown');


$__datetime_before_execute_regex date("d-m-Y H:i:s");  // Justo antes de evalular
$__user_regex_ok preg_match($_POST['expresion_del_usuario'];

if (
$ok$string))
{
    echo 
"La expresión funciona!";
}
En el archivo log yo me guardaria tambien el ID del usuario, la IP, la fecha y hora del posible ataque y todo lo que tengas disponible.

Aclaro que si la expresion al evaluarse da FALSE, se va a guardar en el archivo LOG pero luego se descartaria como falso positivo por ejemplo por el momento en que se ejecuto vs momento en que se detuvo el script
__________________
Salu2!

Última edición por Italico76; 06/07/2013 a las 12:15