Cómo ocultar una página de alguien que conoce la URL

Cómo ocultar una página de alguien que conoce la URL

Cómo hacer para...
El problema del que voy a hablarte en este post es el siguiente: Estoy haciendo un sistema para validar las personas que ingresan a un modulo especifico.El sistema solicita una clave de acceso que yo les genero, por ejemplo la página del formulario es el index.html y cuando completan e introducen la clave correcta los lleva a view.html, el problema está en que si una persona pone en la url directamente view.html, pueden ingresar sin pasar por el formulario.Como puede hacer para si alguien conoce la URL view.html, al ingresarla en el navegador lo redirija al index.html La solución a este problema puede pensarse como la solución a dos sub-problemas: Cómo saber si un visitante pasó antes por una página de tu sitio Una forma de saber si un usuario…
Leer más
Cómo autenticar usuarios en WebServices SOAP

Cómo autenticar usuarios en WebServices SOAP

Cómo hacer para...
Muchas organizaciones (Especialmente gubernamentales) optan por exponer sus servicios web mediante el protocolo SOAP. Para hacer uso de dichos servicios es necesario consumirlos. Existen algunas ocasiones en las que no basta con conocer la URL del servicio, también es necesario realizar algún tipo de autenticación para obtener el resultado buscado. Autenticación HTTP en WebServices SOAP El método más simple de autenticación es el propio de HTTP. Si este es el caso, basta con generar una URL del estilo http://usuario@password:dominio/web_service para poder acceder. El principal problema de este método es su poca seguridad, ya que las credenciales viajan en cada pedido, por lo tanto, es bastante poco frecuente su uso en servicios web. En aplicaciones web normales podrías llegar a encontrártelo (o incluso podrías querer implementarlo). API-Key en WebServices SOAP Una…
Leer más

Cuál es el modo más seguro de tratar con 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. Claro que 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 a romper nuestra seguridad lo van a lograr (Si tienen la capacidad técnica y/o el teléfono de alguien que la tenga). 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…
Leer más
Cómo evitar la inyección SQL  en PHP

Cómo evitar la inyección SQL en PHP

Cómo hacer para...
Uno de los fantasmas más temidos por quienes contratan servicios de desarrollo (especialmente cuando se trata de su primera experiencia) es el de los ataques de hackers. Si bien es imposible asegurar al 100% un sistema (de software o de cualquier otro tipo), existe una serie de buenas prácticas que disminuyen sensiblemente la probabilidad de ocurrencia de tales ataques (o al menos, su probabilidad de éxito). Por lo general, los ataques se basan en la explotación de código vulnerable como ser algún caso raro que el desarrollador no tuvo en cuenta. Uno de los ataques más usuales es el conocido como sql injection. De lo que se trata es de ejecutar código sql sin autorización. Los scripts de PHP que no están bien escritos pueden ser atacados de esta forma. Veamos un ejemplo: <?php $sql…
Leer más
Algunas consideraciones de seguridad cuando se suben archivos vía PHP

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

Seguridad
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…
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