Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/06/2009, 22:29
Avatar de kaninox
kaninox
 
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 19 años, 2 meses
Puntos: 49
Consulta sobre codigo

Viendo Smf encontre este código :

Código php:
Ver original
  1. <?php
  2. function addslashes__recursive($var){
  3. if (!is_array($var))
  4. return addslashes($var);
  5. $new_var = array();
  6. foreach ($var as $k => $v)$new_var[addslashes($k)]=addslashes__recursive($v);
  7. return $new_var;
  8. }
  9. $_POST=addslashes__recursive($_POST);
  10. $_GET=addslashes__recursive($_GET);
  11. $_REQUEST=addslashes__recursive($_REQUEST);
  12. $_SERVER=addslashes__recursive($_SERVER);
  13. $_COOKIE=addslashes__recursive($_COOKIE);
  14. ?>

se supone hasta donde me he informado que evita ataques e inyecciones sql....
y mi pregunta es que ventajas tiene, si lo uno a mi código de control de datos para ingresar usuarios por ejemplo....

Código php:
Ver original
  1. <?php
  2. ## Conectamos a base de datos
  3. ##+------------------------------------------------------------------------->
  4. include ("conectar.php");
  5.  
  6. ## Agregamos la función para limpiar cadenas de caracteres
  7. ## especiales
  8. ##+------------------------------------------------------------------------->
  9. function limpiaCadena ($cadena)
  10. {
  11. $cadena = stripslashes($cadena);
  12. return mysql_real_escape_string($cadena);
  13. }
  14.  
  15. ## Aplicamos la Función al usuario y contraseña
  16. ##+------------------------------------------------------------------------->
  17. $user_ingreso = limpiaCadena(htmlentities($_POST[usuario]));
  18. $contrasena_cad = limpiaCadena($_POST[contrasena]);
  19.  
  20. ## Encriptamos la contraseña con SHA1
  21. ##+------------------------------------------------------------------------->
  22. $contrasena_encriptada = sha1($contrasena_cad);
  23.  
  24. ## Comprobamos si el usuario Existe, comprobando usuario
  25. ## passwords encriptados y si usuario esta activado con (flag)
  26. ##+------------------------------------------------------------------------->
  27.  
  28. $busca_usuario=mysql_query("SELECT * FROM usuarios"
  29. ." WHERE USER = '$user_ingreso'"
  30. ." AND PASSWORD = '$contrasena_encriptada' "
  31. ." AND FLAG = '1'");
  32.  
  33. ## Si al comparar parametros los datos son correctos  
  34. ## es decir consulta == 1, Procedemos......
  35. ##+------------------------------------------------------------------------->
  36.  
  37. if(mysql_num_rows($busca_usuario)==1) // Los datos son validos
  38. {
  39. ## Creamos la Sesion y sus variables  
  40. ## Definimos la sesión para aplicarle seguridad a nuestras
  41. ## paginas internas...
  42. ##+------------------------------------------------------------------------->
  43. $_SESSION['pass_usuario'] = "$user_ingreso";
  44. $_SESSION["error_user"]= "SI";
  45.  
  46. ## Redireccionamos a nuestra aplicación...
  47. ##+------------------------------------------------------------------------->  
  48. header ("Location: carpeta_aplicacion/index.php");
  49. }
  50. ## Ver caso de Acceso Inválido
  51. ##+------------------------------------------------------------------------->
  52. else
  53. {
  54. ## En caso de NO ser correctos los datos, obtenemos la fecha
  55. ## y el ip del cliente, y la guardamos en una tabla
  56. ## para controlar el flood de intentos de ingreso a gusto....
  57. ##+------------------------------------------------------------------------->
  58. $ip = $_SERVER[REMOTE_ADDR];
  59. $fecha = date("Y-m-d");
  60.  
  61. mysql_query ("INSERT INTO flood_login"
  62.                      ." (ip, fecha)"
  63.                      ." Values"
  64.                      ." ('$ip', '$fecha')") or die ("Error ".mysql_error());
  65.  
  66.  
  67. ## y redireccionamos a nuestra pantalla inicial mostrando error
  68. ## de datos incorrectos....
  69. ##+------------------------------------------------------------------------->
  70. header("Location: index.php?erroringreso=si");
  71.  
  72. ## Tambien se puede redireccionar el flag con el usuario
  73. ## en base64, para ver si el usuario esta desactivado e informar
  74. ##$envia = base64_encode($_POST[usuario]);             
  75. ##header("Location: index.php?erroringreso=si&flag=$envia");
  76. ##+------------------------------------------------------------------------->
  77. }
  78. ?>

sorry por tanto código pero quise dejar un código de acceso que me ha llevado tiempo en crear y se los dejo documentado, para fines didácticos, y ver si lo podemos afinar con cositas como estas.....

ojo : este es solo codigo de control de usuarios para ingresos al sistema y demas es necesario ver el tema de sesiones y seguridad de estas con session_start(); por ejemplo......

saludos .....
__________________
Gokuh Salvo al mundo. PUNTO!!!!