Tag: sql

Solución a los ataques SQL-Injection y de etiquetas html, php etc.

Este pequeño script debe ir arriba de TODOS los archivos php que requieran interacción del usuario por medio de los metodos POST, GET y REQUEST.

Esto, eliminar las etiquetas html  que puedan ser ingresadas en los campos de datos y tambien evita las sql-injection.

[cc lang=”php”]
foreach( $_POST as $variable ){
$_POST [ $variable ] = mysql_real_escape_string($variable);
$_POST [ $variable ] = str_replace ( array(“< ",">“,”[“,”]”,”*”,”^”), “” , $_POST[ $variable ]);
//$variable=$_POST [ $variable ];
//echo “POST:$variable”;
}
foreach( $_REQUEST as $variable){
$_REQUEST [ $variable ] = mysql_real_escape_string($variable);
$_REQUEST [ $variable ] = str_replace ( array(“< ",">“,”[“,”]”,”*”,”^”), “” , $_REQUEST[ $variable ]);
//$variable=$_REQUEST [ $variable ];
//echo “REQUEST:$variable”;
}
foreach( $_GET as $variable){
$_GET [ $variable ] = mysql_real_escape_string($variable);
$_GET [ $variable ] = str_replace ( array(“< ",">“,”[“,”]”,”*”,”^”), “” , $_GET[ $variable ]);
//$variable=$_GET [ $variable ];
//echo “GET:$variable”;
}
[/cc]

Básicamente lo que el script hace es leer variable por variable, de cualquiera de los 3 métodos y añadir un caracter de escape, “” a cualquier caracter peligroso para mysql, y eliminar etiquetas html y demás.

Por ejemplo:
El texto: ‘OR=’ ‘ es convertido a ‘OR=’ ‘ por lo que pierde efecto.
El texto <h1>HOLA</h1> es convertido a h1HOLAh1 por lo que también pierde efecto.

Con este script nos evitamos tener que proteger todos los campos manualmente uno por uno.

Recuerda que si te sirvió, comentá.

Saludos y safe programming!

Reparar InnoDB en Ubuntu…

Errores con InnoDB en Ubuntu

Muchas veces, nos encontramos queriendo hacer una Tabla para una Base de datos  MYSQL en Ubuntu con claves foraneas, y nos damos por sorpresa que InnoDB no esta activado.

Lo primero que cualquier persona hace es: Google–> ¿Como activar InnoDB en Ubuntu?    a lo que Google responde… que hay que editar el archio de configuracion, comentando la linea que dice Skip-InnoDB, y reiniciando el servicio de mysql…

PERO AVECES, ESO NO FUNCIONA, como lo fue en mi caso  Mysql, sigue iniciando con InnoDB desactivado!

Ni siquiera ningun mensaje de error me tira…

el problema radica en  los logs de InnoDB. al iniciar de forma incorrecta, se genera un LOG CORRUPTO, que sencillamente, no deja que se inicie InnoDB.

solucion:

ir hasta la carpeta:


/var/lib/mysql

y eliminar por completo los siguientes archivos:


ibdata1
ib_logfile0
ib_logfile1

despues reinicias mysql con la siguiente linea:


sudo /etc/init.d/mysql start

Y LISTO ahora InnoDB va a funcionar perfectamente!