Ver Mensaje Individual
  #18 (permalink)  
Antiguo 16/03/2010, 09:19
Avatar de eulloa
eulloa
 
Fecha de Ingreso: octubre-2007
Ubicación: Donde caiga la noche, si mi hijo me deja
Mensajes: 691
Antigüedad: 16 años, 6 meses
Puntos: 5
Respuesta: Filtro para Evitar XSS ayuda

Cita:
Iniciado por xosgon Ver Mensaje
1º. Esto debo hacerlo en todas las paginas que requieran un login, o simplemente en todos los formularios con una celda en la que se pueda escribir.
Bueno, no solo en las que requieran LOGIN, sino en las q manejen formularios en general que utilices para insertar info en la BD. Consejo Máximo: Nunca confíes en la información del usuario.

Cita:
Iniciado por xosgon Ver Mensaje
2º. Con esos parametros exactamente que conseguimos evitar.
Eso, inyección SQL. Esta función lo que haría es "escapar" las comillas que pasen en los datos del usuario. Imagina que nada impide que en vez de user yo ponga en un text "where 1=1"# o algo parecido. Mira los ejemplos arriba de pateketrueke.

Cita:
Iniciado por xosgon Ver Mensaje
3º. La estructura de las consultas que hago a la db es la siguiente:
$sql="SELECT usuario, password FROM gral_usuarios_admin WHERE usuario = '$login_usuario' AND password = '$password_usuario'";

He visto que dicen por los foros, que es importante que en estas consultas se definan comillas, mi pregunta es, mi forma de hacer la consulta es correcta o debo añadirle algo.
Muchas Gracias,

Lo que no comprendo tampoco es a que se corresponde $usuariao y $password, pues no los uso en ningun otro lado que no sea en donde tu los defines.
Bueno las variables las defines tú, haz entonces $login_usuario = mysql_real_escape_string($_POST['usuario'].
Lo que si no entiendo es la segunda observación, lo de "se definan comillas"

Código PHP:
Ver original
  1. <?
  2. $id_sitio = 1;
  3. include (".........");
  4.  
  5. /*if ((session_is_registered("password_admin_session")) && (session_is_registered("usuario_admin_session"))){
  6.     header("Location: menu.php");
  7. }*/
  8.  
  9. if($procesa == "si"){
  10.     $todo_ok = 0;
  11.     $usuario = mysql_real_escape_string($_POST['usuario']);
  12.     $password = mysql_real_escape_string($_POST['password']);
  13.    
  14.     $sql="SELECT usuario, password FROM gral_usuarios_admin WHERE usuario = '$usuario' AND password = '$password'";
  15.     $result = mysql_query($sql);
  16.    
  17. //COMO OBSERVACIÓN GENERAL, MEJOR USAR $_SESSION Q LAS VERSIONES
  18. //REGISTER
  19.     if($row_usuario = mysql_fetch_array($result)){
  20.         session_register("usuario_admin_session");
  21.         session_register("password_admin_session");
  22.         $usuario_admin_session = $row_usuario["usuario"];
  23.         $password_admin_session = $row_usuario["password"];
  24.    
  25.         include("mail_accesos.php");
  26.         echo ($row_usuario['usuario'])? "<script>top.location.href='./menu.php';</script>":"<script>top.location.href='./index.php';</script>";
  27.         //echo ($row_usuario['u']);
  28.     }
  29.    
  30.    
  31. }
  32. ?>

Aunque no revisé mucho el code