New question

Question:

Date: 05-02-2015 05:01:26 (In Spanish)

¿Estoy sanitizando variables? [Resolved]

Saludos, mi pregunta es si ¿estoy sanitizando mis variables? o ¿tengo que crear condicionales en php para sanitizar las variables del formulario?

Aqui el codigo html

<form action="" method="post" class="login">
	
		<div><label>Nombre:</label><input name="user" type = "text" title="Ingresa tus nombres con el guion '_'." required pattern='[A-Za-z_]{3,24}' required></div>

		<div><label>Contraseña:</label><input name="password" type="password" title="Ingresa tu contraseña, tomando en cuenta las mayusculas, minusculas, simbolos." required></div>

		<div><input name="login" type="submit" value="Entrar" ></div>
	<div align="center">No tienes una cuenta? <a href="registro.php">Registrate</a></div>
	</form>
Tags: PHP - Question - Sanitation - Security - Validaciones - Variables Votes: 1 - Answers: 6 - Views: 17 Share on: Google Facebook Twitter LinkedIn Link
 

Answers:

  • Date: 05-02-2015 06:23:59 Hola Jose,
    La sanitización y/o validación se puede hacer en los 3 niveles de tu aplicación:
    1. Del lado del cliente (generalmente utilizando javascript).
    2. Del lado del servidor (utilizando un lenguaje de servidor como PHP,ASP, Python, etc.).
    3. En la base de datos (mediante las constraints de cada campo, triggers, etc.).

    En el código que pones estás estableciendo una propiedad nueva que te servirá para sanitizar y/o validar tu variable pero como tal no se está sanitizando ni validando.
      Votes: 1 - Link answer
     
  • Date: 05-02-2015 06:24:22 Hola Jose,

    Lo que estas haciendo en tu HTML es validar el ingreso del lado del cliente, o sea, no le permites ingresar un nombre que no haga mach con el pattern '[A-Za-z_]{3,24}', pero eso no es sanitizar, es solo validar el formato de ingreso.

    Normalmente todo lo que se valida / sanitiza del lado del cliente es solo para realizar una "falla temprana" (evitas que el contenido invalido sea enviado al servidor ante un ingreso erroneo), pero no puede ser considerado como un método de seguridad, ya que el código que corre del lado del cliente puede ser manipulado por este y tu seguridad facilmente violada.

    Javascript (del lado del cliente) y HTML5 se pueden utilizar para hacer una falla temprana, pero SIEMPRE deberás sanitizar y validar los parametros con PHP (del lado del servidor) para evitar que te inyecten código y/o información invalida.

    Aquí te dejo un enalce a una respuesta donde ejemplifique como hacer esto con un dato del tipo INTEGER: http://www.phpcentral.com/pregunta/14/como-activar-case-sensitive-para-contrasena-del-logueo#resp_92cc227532d17e56e07902b254dfad10

    Saludos y buen código!
      Votes: 0 - Link answer
     
  • Date: 05-02-2015 06:34:57 Muchas gracias a los dos, pensaba que estaba sanitizando en el form , pero como dices es solo para una falla temprana, Muchas gracias.   Votes: 0 - Link answer
     
  • Date: 05-02-2015 06:59:21 Perdón, leí mal la propiedad. Estás sanitizando correctamente tu variable como menciona Fernando, pero del lado del cliente. Aunque no es seguro, no es recomendable que no lo hagas, sirve como hints al usuario final de la regla que debe seguir (refuerza esto agregando un mensaje o resaltando con colores el problema).
    Ojo al hecho de que aunque hay muchas formas de validar y/o sanitizar una variable, PHP te da un set de funciones para hacerlo de la forma correcta y que son muy flexibles con sus funciones de filtrado. Una de ellas es filter_var
      Votes: 1 - Link answer
     
  • Date: 06-02-2015 07:48:23 Una recomendacionión cuando este haciendo el proceso validacion no mezcle el codigo de las validaciones con los de php intente manejar una capa de apstacion para dichas validaciones puede ser victima de violaciones de seguridad   Votes: -1 - Link answer
     
  • Date: 06-02-2015 08:46:36 Julian, podrias editar tu respuesta. No se entiende lo que quieres decir.   Votes: 0 - Link answer
     
To actively participate in the community first must authenticate, enter the system.Sign In