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

Buenas prácticas, Uncategorized
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…
Read More
Algunas consideraciones de seguridad cuando se suben archivos vía PHP

Algunas consideraciones de seguridad cuando se suben archivos vía PHP

Buenas prácticas, Uncategorized
Php permite subir archivos vía HTTP de un modo bastante simple (Si tenés dudas consultá acá). Un uso bastante común de esta funcionalidad es la de permitir al visitante ingresar imágenes, por ejemplo: su foto de perfil. Existe una serie de consideraciones respecto de la seguridad a tener en cuenta cuando se realiza una tarea de este tipo. Con estas medidas estamos intentando evitar que un atacante engañe a nuestro sistema subiendo código malicioso que podría, por ejemplo, darle acceso a información privilegiada. Validar que el archivo recibido sea del tipo esperado Lo primero de lo que querremos estar seguros es de que el archivo que acabamos de recibir sea efectivamente una imagen (GIF, JPG, etc...). La forma inocente de hacer esta verificación es a través del nombre del archivo (si las últimas…
Read More
¿Es conveniente montar tu propio servidor web?

¿Es conveniente montar tu propio servidor web?

Buenas prácticas, Uncategorized
Lo primero que tenés que contestar antes de pensar en esto es si vas a ser capaz de darle soporte (Qué pasa si se cae el Apache en la mitad de la noche por ejemplo). Después está el tema de qué le vas a instalar. ¿Sos un fanático del composer? ¿Necesitás Memcached? ¿APC? ¿Cronjobs? ¿Qué tanto tráfico vas a tener? ¿Te bancás a tus vecinos? Como de costumbre, no existe una respuesta única y universal. Cada alternativa tiene sus ventajas y desventajas. Ventajas de usar un servidor compartido Costo (El abono suele ser más económico, aunque algunas VPS como DigitalOcean tienen planes super interesantes) Soporte técnico incluido (Como siempre, no todos los proveedores te van a dar el mismo nivel de soporte, pero siempre vas a tener algún tipo de soporte…
Read More
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, Uncategorized
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…
Read More
En qué casos conviene usar un framework PHP

En qué casos conviene usar un framework PHP

Buenas prácticas
O en otras palabras: Framework, ¿sí o no? Qué dilema... Tuve esta discusión bastantes veces (y debo decir que fueron largas horas difícilmente bien invertidas) con compañeros de trabajo y demás colegas. Debo admitir, nobleza obliga, que fue hace mucho tiempo... hace mucho que no escucho a nadie sostener la postura opuesta (La discusión hoy pasa por cuál framework elegir). La respuesta corta es en todos. La respuesta más elaborada (por si tenés tiempo y querés leer un poco más) es esta: Salvo que pienses desarrollar un negocio alrededor de un framework de tu propia autoría o tengas mucho tiempo y ganas de aprender mucho PHP, usar un framework estándar es una decisión que no debería tomarte más de 10 segundos. ¿Por qué? Simple: ¡tenés muchísimos problemas más importantes por resolver! El…
Read More
Por qué usar una máquina virtual para proyectos PHP

Por qué usar una máquina virtual para proyectos PHP

Buenas prácticas
[caption id="attachment_665" align="aligncenter" width="628"]  [/caption] Respuesta rápida: para evitar sorpresas desagradables. Paso a detallar un poco de qué estoy hablando con un par de historias que me pasaron hace unos cuantos años durante el desarrollo de un proyecto personal. Como la mayoría de los desarrolladores que están empezando, tenía instalado en mi computadora (Windows en aquel entonces) el paquete XAMPP y mi forma de trabajo era programar y probar en mi propia computadora y luego, mediante FTP, subir mis cambios al hosting que había contratado con la empresa de un amigo. Un día una de las últimas actualizaciones que había realizado a mi código funcionaba perfectamente en mi casa, pero al subirla a mi hosting las cosas eran un poco diferentes (léase: no andaba nada :p). Hago la historia corta:…
Read More