|
201
|
Programación / Desarrollo Web / Re: como puedo cifrar mi base de datos y a la vez tener seguridad sql
|
en: 20 Noviembre 2012, 22:06 pm
|
puedes poner algun ejemplo de login.php para ver las funciones como las utilizas porque yo utilizaba el mysql_fetch_array y hay metia un valor $correcto=1 para que me entrara si fuera $correcto=1 sino entraba con $correcto=0, como se haria con mysqli en este ejemplo: <?php session_start();
if(!isset($_SESSION['usuario1'])) { $usuario=$_POST['usuario']; $pass=$_POST['contrasena'];
if (strlen($usuario)<8 || strlen($usuario)>15) { echo "El limite esta entre 8 y 15 caracteres<br>"; return false; }
//es mejor hacer una lista blanca con caracteres permitidos que una negra, lo que no este aquí simplemente se ignora $validos = "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ0123456789-_@#"; for ($i=0; $i<strlen($usuario); $i++){ if (strpos($validos, substr($usuario,$i,1))===false){ echo " Contiene caracteres no permitidos<br>"; return false ; } }
$cifrad=hash('sha512',$pass);
} else { $usuario=$_SESSION['usuario1']; $cifrad=$_SESSION['contrasena']; }
include("conexionbd.php");
$conexion=mysql_connect($host,$usu,$pusu);
mysql_select_db($bd,$conexion);
$correcto=0; $result=mysql_query("select cod_admin,usuario1,contrasena from REC_administradores where usuario1='$usuario' and contrasena='$cifrad'",$conexion);
if($fila1=mysql_fetch_array($result)) { $fila1['cod_admin']; $_SESSION['usuario1']=$fila1['usuario1']; $_SESSION['contrasena']=$fila1['contrasena']; $correcto=1;
}
if($correcto==1) { echo "Has entrado: ". $fila1['cod_admin']; }
if($correcto==0) { echo "No entras"; unset($_SESSION['usuario1']); unset($_SESSION['contrasena']);
}
mysql_close($conexion); ?>
|
|
|
205
|
Programación / Desarrollo Web / Re: como puedo cifrar mi base de datos y a la vez tener seguridad sql
|
en: 17 Noviembre 2012, 20:15 pm
|
estoy haciendo mi codigo pero nose si ando bien, comenten algo sobre la lista blanca xk parece que eso es lo que me falla ahora solo. ademas necesito algun array o algo para no repetir codigo como lo podria hacer tambien en lo de longitud de caracateres, gracias haber si sale algun experto en arrays o algo de esto,porque sino tendria x cada campo que repetir codigo y eso es mucho codigo: <?php session_start();
if(!isset($_SESSION['usuario1'])) { $usuario=$_POST['usuario']; $pass=$_POST['contrasena'];
if (strlen($usuario)<8 || strlen($usuario)>15) { echo " El limite esta entre 8 y 15 caracteres<br>"; return false; }
//es mejor hacer una lista blanca con caracteres permitidos que una negra, lo que no este aquí simplemente se ignora $validos = "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ0123456789-_ @#"; for ($i=0; $i<strlen($usuario); $i++){ if (strpos($validos, substr($usuario,$i,1))===false){ echo " Contiene caracteres no permitidos<br>"; return false ; } } return true;
/* cifra el mysql_real_escape_string los datos, asi que habrá que de algun modo de cifrar los datos pero que estos sean devueltos en la base de datos*/ /*$usuario=mysql_real_escape_string($usuario);*/ /*$pass=mysql_real_escape_string($pass);*/
/*$cifrad=hash('sha512',$pass);*/
} else { $usuario=$_SESSION['usuario1']; $cifrad=$_SESSION['contrasena']; }
include("conexionbd.php");
$conexion=mysql_connect($host,$usu,$pusu);
mysql_select_db($bd,$conexion);
$correcto=0; $result=mysql_query("select cod_admin,usuario1,contrasena from REC_administradores where usuario1='$usuario' and contrasena='$cifrad'",$conexion);
if($fila1=mysql_fetch_array($result)) { $fila1['cod_admin']; $_SESSION['usuario1']=$fila1['usuario1']; $_SESSION['contrasena']=$fila1['contrasena']; $correcto=1;
}
if($correcto==1) { echo "Has entrado: ". $fila1['cod_admin']; }
if($correcto==0) { echo "No entras"; unset($_SESSION['usuario1']); unset($_SESSION['contrasena']);
}
mysql_close($conexion); ?>
|
|
|
206
|
Programación / Desarrollo Web / Re: como puedo cifrar mi base de datos y a la vez tener seguridad sql
|
en: 17 Noviembre 2012, 19:40 pm
|
E RECTIFICADO Y X CIERTO MYSQL_REAL_ESCAPE_STRING esta totalmente descartado da errores: <?php session_start();
if(!isset($_SESSION['usuario1'])) { $usuario=$_POST['usuario']; $pass=$_POST['contrasena'];
/*$dato=12345; if (strlen($dato)<1 || strlen($dato)>15) { echo " El limite del dato es de 15 caracteres<br>"; return false; } echo $dato;*/ /* cifra el mysql_real_escape_string los datos, asi que habrá que de algun modo de cifrar los datos pero que estos sean devueltos en la base de datos*/ /*$usuario=mysql_real_escape_string($usuario);*/ /*$pass=mysql_real_escape_string($pass);*/
$cifrad=hash('sha512',$pass); echo $cifrad; } else { $usuario=$_SESSION['usuario1']; $cifrad=$_SESSION['contrasena']; }
include("conexionbd.php");
$conexion=mysql_connect($host,$usu,$pusu);
mysql_select_db($bd,$conexion);
$correcto=0; $result=mysql_query("select cod_admin,usuario1,contrasena from REC_administradores where usuario1='$usuario' and contrasena='$cifrad'",$conexion);
if($fila1=mysql_fetch_array($result)) { $fila1['cod_admin']; $_SESSION['usuario1']=$fila1['usuario1']; $_SESSION['contrasena']=$fila1['contrasena']; $correcto=1;
}
if($correcto==1) { echo "Has entrado: ". $fila1['cod_admin']; }
if($correcto==0) { echo "No entras"; unset($_SESSION['usuario1']); unset($_SESSION['contrasena']);
}
mysql_close($conexion); ?>
|
|
|
207
|
Programación / Desarrollo Web / como puedo cifrar mi base de datos y a la vez tener seguridad sql
|
en: 17 Noviembre 2012, 18:04 pm
|
mysql_real_escape_string sea a actualizado no¿¿? xk ahora cifra los datos que pasa pero no los puedo guardar en la base de datos que hago, aqui os paso el codigo con el mysql_real_escape_string comentado sino no me funciona y no loguea el usuario "SERGIO": <?php session_start();
if(!isset($_SESSION['usuario1'])) { $usuario=$_POST['usuario']; $pass=$_POST['contrasena'];
/* cifra el mysql_real_escape_string los datos, asi que habrá que de algun modo de cifrar los datos pero que estos sean devueltos en la base de datos*/ /*$usuario=mysql_real_escape_string($usuario);*/ $pass=mysql_real_escape_string($pass);
$cifrad=hash('sha512','$pass');
} else { $usuario=$_SESSION['usuario1']; $cifrad=$_SESSION['contrasena']; }
include("conexionbd.php");
$conexion=mysql_connect($host,$usu,$pusu);
mysql_select_db($bd,$conexion);
$correcto=0; $result=mysql_query("select cod_admin,usuario1,contrasena from REC_administradores where usuario1='$usuario' and contrasena='$cifrad'",$conexion);
if($fila1=mysql_fetch_array($result)) { $fila1['cod_admin']; $_SESSION['usuario1']=$fila1['usuario1']; $_SESSION['contrasena']=$fila1['contrasena']; $correcto=1;
}
if($correcto==1) { echo "Has entrado: ". $fila1['cod_admin']; }
if($correcto==0) { echo "No entras"; unset($_SESSION['usuario1']); unset($_SESSION['contrasena']);
}
mysql_close($conexion); ?>
-- -- TABLA Administradores --
CREATE TABLE REC_administradores( cod_admin INTEGER NOT NULL AUTO_INCREMENT, usuario1 VARCHAR(200) NOT NULL, contrasena VARCHAR(200) NOT NULL, adminemail VARCHAR(200) NOT NULL, usuario VARCHAR(20), CONSTRAINT PKUSUA PRIMARY KEY (cod_admin), CONSTRAINT adminunica1 UNIQUE(usuario1), CONSTRAINT adminunica11 UNIQUE(usuario) ) ENGINE=InnoDB;
NECESITO contra sql injection y cifrar la base de datos con algun algoritmo recursivo*.
|
|
|
|
|
|
|