Validaciones… ¿lado cliente o lado servidor?

Validaciones… ¿lado cliente o lado servidor?

Buenas prácticas, Seguridad
La respuesta corta primero: las dos (y si sólo puedo elegir una, definitivamente del lado servidor). Respuesta larga: ¿Por qué es más importante la validación del lado servidor que del lado cliente? Sencillamente porque tenés mucho más control sobre lo que sucede. En una aplicación de escritorio (o digamos, una aplicación que no sea de tipo cliente-servidor) no existe este problema: la aplicación es una sola con lo cual, lo que el front-end captura puede ser considerado confiable y volver a realizar la validación en el backend resultaría redundante. En cambio, en el entorno de una aplicación web (o una cliente-servidor), se trata realmente de dos aplicaciones independientes. Pensá un momento en cómo es el modelo de ejecución de una aplicación web: El cliente realiza un pedido El servidor responde…
Leer más

Cuál es el modo más seguro de almacenar passwords en PHP

Buenas prácticas
Es bastante común últimamente recibir noticias de que algún sitio de gran popularidad ha sido hackeado (O, como suele comunicarse, "su seguridad se ha visto comprometida"). Dependiendo del tipo de sitio del que se trate el problema puede preocuparnos más o menos. Pero eso es cuando somos meramente usuarios del sitio... ¿qué pasa cuándo se trata de un sitio que está bajo nuestra responsabilidad? Aclaremos algo antes de seguir: es imposible hacer un sitio 100% libre de vulnerabilidades. Si hay gente decidida (y capaz) a romper nuestra seguridad lo van a lograr. Es por eso que es muy importante, no sólo poner trabas a los atacantes si no también dejar un botín poco atractivo para el caso de que lo consigan. Algo bastante común es que la gente reutilice sus contraseñas…
Leer más
Dónde almacenar la configuración de una aplicación PHP de forma segura

Dónde almacenar la configuración de una aplicación PHP de forma segura

Buenas prácticas
Una pregunta que me llegó de un amigo que viene del mundo .Net (Que parece ser un poco más organizado o estandarizado que el nuestro :). Lo primero que deberíamos preguntarnos es de qué nos estamos queriendo proteger. Por lo general, la posibilidad de que alguien externo a nuestra organización tenga acceso a la configuración de nuestra aplicación no parece muy tentadora... ¿por qué? Básicamente porque puede haber información sensible (Como ser contraseñas, nombres de hosts donde están las bases de datos, etc...) que podrían dar a un atacante una ventaja importante si decidiera hacernos un daño. Una línea de defensa que tenemos es guardar estos archivos en un directorio que no sea públicamente accesible. Si usás el webserver Apache, conocerás seguramente la directiva DocumentRoot: lo que está "a la vista" de…
Leer más